gpt4 book ai didi

PHP 通知 : Array to string conversion only on PHP 7

转载 作者:可可西里 更新时间:2023-11-01 12:42:10 26 4
gpt4 key购买 nike

我是PHP新手。我是从php.net研究的,今天发现了一个问题。

class foo {
var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->$baz[1]}\n";

文档(http://php.net/manual/en/language.types.string.php)说上面的例子会输出:

I am bar.
I am bar.

但是我在我的 PC 上运行了不同的输出(PHP 7):

I am bar.
<b>Notice</b>: Array to string conversion in ... on line <b>9</b><br />
<b>Notice</b>: Undefined property: foo::$Array in ... on line <b>9</b><br />

为什么?

最佳答案

这应该适用于 PHP 7:

class foo {
var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->{$baz[1]}}\n";

这是因为在 PHP 5 中有以下行:

echo "{$foo->$baz[1]}\n";

被解释为:

echo "{$foo->{$baz[1]}}\n";

而在 PHP 7 中它被解释为:

echo "{{$foo->$baz}[1]}\n";

因此在 PHP 7 中,它将整个数组传递给 $foo 而不仅仅是那个元素。

关于PHP 通知 : Array to string conversion only on PHP 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35906624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com