1

この宣言を考えると:

(string)$my_string = 'Hello world';

**

$my_string = 'Hello world';

また*

 (int)$my_int = 1;


 $my_int = 1;

PHPで文字列変数を定義する最初の方法よりも利点がありますか?

4

2 に答える 2

3

あなたの「型キャスト」コードは実際には何も達成しません。

(type) $var = literalこれを行います:

  1. $varリテラル値のネイティブ型でリテラル値を割り当てます。
  2. $var目的の型へのキャストの値を (式として) 「返す」 。

の種類は$var変わりません。

例えば:

var_dump((string) $s = 1);
var_dump($s);

出力は次のとおりです。

string(1) "1"
int(1)

したがって、この構文には意味がありません。リテラルを使用した型キャストは、ほぼ確実に無意味です。

ただし、変数を特定の型に強制すると便利な場合があります。たとえば、次のようになります。$intvar = (int) $var;

于 2012-05-02T19:47:06.123 に答える
1

最初の方法よりも利点はありますか

はい。2 つ目はより簡潔です。

PHPで変数を型キャストする利点は何ですか

期待される型にキャストします。
ただし、文字列ではほとんど必要ありません。
変数定義では、まったく必要ありません。

于 2012-05-02T19:37:33.640 に答える