PHP 在 href 中回显 $this->item->link 不起作用 - 显示 JObject->link



当我把我的耳朵拉出来时,快速提问!

在PHP文件中,我提取了不同的项目,例如联系方式等。我已经浏览了$this->item->链接,该链接显示了一个完美的URL。我只想使网址可点击,所以我有以下代码:

echo "<a href='$this->item->contactlink' target='new'>";
echo $this->item->contactlink;
echo '</a>';

此链接不起作用,保留在带有 404 的网站内,URL 如下所示:http://domain.co.uk/JObject->联系人链接

我能做什么或错过了什么才能让链接可点击?

亲切问候利亚姆

你遇到了一个PHP解析器故障:它不是"贪婪"。在"引号字符串中使用嵌套对象引用或多维数组仅将对象或数组的第一个"维度"解析为对象/数组的一部分:

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并停止解析,->bar为纯文本,而不是对象的一部分。

您需要使用 {} 扩展字符串语法:

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在第二部分中正确输出。

尝试:

 <a href="<?php echo $this->item->contactlink; ?>" target='_blank'>
    <?php echo $this->item->contactlink; ?>
 </a> 

或更短的版本:

 <a href="<?= $this->item->contactlink; ?>" target='_blank'>
    <?= $this->item->contactlink; ?>
 </a> 

目标='新'可能是问题的一部分 - 我相信目标=_blank是标准的。不是 100% 在这个问题上,没有看到你是如何构建"$this"的。此外,将 php 元素从 html 中拉开也有助于清除链接引用。也许链接有额外的报价?

最新更新