gpt4 book ai didi

php - 当在字符串中使用所述对象变量时,为什么不能访问 "deeper"对象变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:14 24 4
gpt4 key购买 nike

我的意思是,虽然你可以这样做:

$foo = "Yo dawg I herd you like $bar->baz";

这个:

$foo = "Yo dawg I herd you like $bar->baz->qux";

导致以下错误:

"Object of class * could not be converted to string"

最干净的方法似乎是这样的:

$baz = $bar->baz;

$foo = "Yo dawg I herd you like $baz->qux";

那么为什么它不起作用,是否有更好的解决方案?

注意:

我知道有些人更喜欢将他们的变量放在他们的字符串之外,但这里不是讨论此类偏好的场所,也没有解决我要问的问题,所以如果您将这种主观情绪排除在外,我将不胜感激这个。谢谢。

最佳答案

因为简单的插值(参见 http://php.net/manual/en/language.types.string.php 中的描述 - “变量解析”部分)明确设计为仅插值嵌入的“字符串中的变量、数组值或对象属性”。

请注意,它旨在插入“对象属性”,而不是“任意表达式”。要执行后者,您的解析器在解析字符串时需要做更多更难的工作。

对于任意表达式,您需要使用 PHP4 中引入的复杂( curl )语法,将所述表达式括在花括号中:{$bar->baz->qux} 在字符串中。

关于php - 当在字符串中使用所述对象变量时,为什么不能访问 "deeper"对象变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548663/

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