配列について少し混乱しています
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 の種類はいつでも変更される可能性があるため、強制する必要があります。次のように型変換が機能します。