-2

UTF-8 文字列を php 変数に変換する json_decode 関数をテストしていました。

これが機能しない理由がわかりません

$names='array("Jack","Jill","John")'
$convert_names=json_decode($names);
echo echo $convert_names[0];

しかし、これは機能します

$names='["Jack","Jill","John"]'
$convert_names=json_decode($names);
echo echo $convert_names[0];

PHP配列を作成する方法は、

$names=array("Jack","Jill","John") // this works
$names=["Jack","Jill","John") //this does not work

JSON_DECODE 関数が関係している場合、なぜそんなに違うのですか

4

2 に答える 2

1

array("Jack","Jill","John")は配列の PHP 表記ですが、無効な JSON です。偶然に["Jack","Jill","John"]も、PHP と JSON の両方で有効です。

json_decode()PHP 構文の評価には使用できません。これがeval()関数の目的です。

eval('$names = array("Jack","Jill","John");');
echo $names[0]; // Jack

ただし、可能であればペストのように避けたいと思います-ドキュメントの注意を参照してください。

于 2013-09-16T14:33:31.883 に答える