2012-01-17 21 views
-2

私はこれが既に尋ねられていると思います。 PHPで、この例のように変数のデータ型を変更することができます。php変数は複数のデータ型を同時に保持できますか?

$var = '3'; 

if (is_string($var)) 
    echo "variable is now string <br />"; 

$var = $var+1; 

if (is_int($var)) 
    echo "variable is now integer <br />"; 

ただし、変数は1つの時点で複数のデータ型を保持できますか?

+1

あなたは同時に文字列とintを意味しますか?いいえ、間違いなく。 –

+0

ソースコードをチェックせずに 'PHP'が何らかの表現キャッシュを使用していると仮定しているので、変数が文字列としてアクセスされると文字列表現がキャッシュされ、後で整数としてアクセスされると変数どちらの表現もキャッシュされます。しかし、それでは、1つ以上のデータ型を持つ変数がどのようにして現れるのか分かりません。 – zrvan

答えて

0

あなたのコードでは、このようのvar_dumpを追加する場合:

$var = '3'; 
var_dump($var); 
if (is_string($var)) 
    echo "variable is now string <br />\n"; 
$var = $var+1; 
var_dump($var); 
if (is_int($var)) 
    echo "variable is now integer <br />\n"; 

あなたの出力は次のようになります。

PHPは、あなたがどのような方法で変数を使用することができます 単純なルールを示し
string(1) "3" 
variable is now string <br /> 
int(4) 
variable is now integer <br /> 

あなたは好きで、はあなたのコードで使用している通りにデータタイプを変更します。

0

いいえ、弱く型付けされているのでPHPは値を解釈しますが、好きです。

0

いいえ変数は、一度に1つの値しか保持できません。もちろん、その値は複数の値を保持できる配列やオブジェクトでも構いませんが、変数自体は依然として単一のオブジェクトへの参照です。

0

アレイには、どのような種類のアイテムも多数含めることができます。

しかし、それ自体は変数なので、1つのタイプ - arrayである可能性があります。

私は質問には意味を見ませんが、それを全く問わない理由は想像していますが。一度にいくつかのタイプの1つの変数を持つことのポイントは何ですか?ちょっと不明な点があるかもしれません。

0

はい。変数は、配列またはオブジェクトの場合、単一の時点における複数のデータ型と値に対するホルダとすることができます。

+0

いいえ、変数が保持する型*は、その時点での配列またはオブジェクトですが、1つの型だけです。 –

+0

これはセマンティクスです。問題はあまり明確ではない。 –

関連する問題