配列に関する混乱の解決策

WBOY
WBOYオリジナル
2016-06-13 13:35:45878ブラウズ

配列について少し混乱しています

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$arr = array();
$num='hello world';

if(isset($num)) {
    $arr = $num;
    var_dump($arr);
} else {
    $arr[] = array(1,2,3);
    var_dump($arr);
}


実行後、ブラウザには文字列型が表示されます
HTML コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->string(11) "hello world" 

しかし、すでに arr を配列に設定していますが、根本的な理由がわかりません。それとも、 $arr = $num; が変数 arr を再宣言しているのでしょうか。 ? ?

-----解決策--------------------------------
これは弱い型です...

$str = "123";
echo $str[0];//これは問題ありません、出力 1
------解決策------------------
変数の型はコンテキストに応じて自動的に変化します。これはいわゆる弱い型です。

$arr = $num なので、$arr は文字列になります。
------解決策------------------
PHP の種類はいつでも変更される可能性があるため、強制する必要があります。次のように型変換が機能します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。