无法在PHP中将字符串偏移量用作数组

我正在尝试使用示例php代码模拟此错误,但尚未成功。任何帮助都会很棒。

“不能将字符串偏移量用作数组”

回答:

回答:

…这重现了错误:

$foo    = 'bar';

$foo[0] = 'bar';

回答:

…这重现了错误:

$foo = 'bar';

if (is_array($foo['bar']))

echo 'bar-array';

if (is_array($foo['bar']['foo']))

echo 'bar-foo-array';

if (is_array($foo['bar']['foo']['bar']))

echo 'bar-foo-bar-array';

(实际上来自bugs.php.net)

回答:

因此,即使是字符串,为什么错误也不会出现在第一个if条件中。

因为PHP是一种非常宽容的编程语言,所以我猜。我将用代码说明我的想法:

$foo = 'bar';

// $foo is now equal to "bar"

$foo['bar'] = 'foo';

// $foo['bar'] doesn't exists - use first index instead (0)

// $foo['bar'] is equal to using $foo[0]

// $foo['bar'] points to a character so the string "foo" won't fit

// $foo['bar'] will instead be set to the first index

// of the string/array "foo", i.e 'f'

echo $foo['bar'];

// output will be "f"

echo $foo;

// output will be "far"

echo $foo['bar']['bar'];

// $foo['bar'][0] is equal calling to $foo['bar']['bar']

// $foo['bar'] points to a character

// characters can not be represented as an array,

// so we cannot reach anything at position 0 of a character

// --> fatal error

以上是 无法在PHP中将字符串偏移量用作数组 的全部内容, 来源链接: utcz.com/qa/397526.html

回到顶部