你遇到一个PHP解析器故障:它不是“贪婪”。使用嵌套的对象引用,或多维阵列,在一个"
-quoted串仅解析对象或阵列的第一个“尺寸”作为对象/阵列的一部分:
php > class z { function __toString() { return get_class($this); } }
php > $x = new z();
php > $x->foo = new z();
php > $x->foo->bar = new z();
php > echo "$x // $x->foo // $x->foo->bar";
z // z // z->bar
注意z->bar
上的最后部分的回声。 PHP解析器看到$x->foo
和STOPPED解析,将->bar
保留为纯文本,而不是对象的一部分。
您需要使用{}
-Extended字符串语法:
php > echo "$x // $x->foo // {$x->foo->bar}";
z // z // z
注->bar
怎么没得到输出。
而且同上一个数组:
$foo['bar']['baz'] = 'qux';
echo "$foo[bar][baz] {$foo['bar']['baz']}";
PHP Notice: Array to string conversion in php shell code on line 1
Array[baz] qux
注意如何$foo['bar']
成为第一部分中的字Array
,而qux
在第二正常输出。
PHP运行后,html看起来像什么? –
页面加载正常,只是如果你悬停或点击链接,它会尝试去http://domain.co.uk/JObject->链接,而不是去实际的链接。很明显,该URL不存在,所以它显示404. – user3711642
在你的问题中你说这个:_“我已经通过$ this-> item->链接显示了一个完美的URL”_是这样的:'$ this - > item-> link'或this:'$ this-> item-> contactlink'。无论哪种情况,你能提供每个人的'echo'结果吗? – CodeGodie