我正在尝试在-
之后添加一个短划线$pageurle
和一个定义的字符串{target}
,因为href中的url(代码见下面)扩展了,自然是破折号和变量$ pageurle
查看我想要注入的现有代码片段& href之后的变量:
// html for breadcrumbs
var $breadcrumb_templates = array(
'separator' => '→',
'link' => '<a href="{target}">{name}</a>',
'wrapper' => '<div class="breadcrumbs">{items}</div>',
);
现在,当我添加破折号和$ pageurle时,Dreamweaver说我做错了什么并显示出错误。我必须在这里做些蠢事......但是什么?您的想法/代码/改进/可能潜入此事非常感谢。
答案 0 :(得分:3)
非常确定这是因为类属性初始化语句(var
给出了它),可能只包含常量或文字。
您不能在声明中执行任何程序。
最好在构造函数中执行此类操作。
修改强>
说明
class MyClass
{
public $breadcrumb_templates = array(
'separator' => '→',
'link' => '<a href="{target}">{name}</a>',
'wrapper' => '<div class="breadcrumbs">{items}</div>',
);
public function __construct($pageurle = null)
{
if (null !== $pageurle) {
$this->breadcrumb_templates['link'] =
sprintf('<a href="{target}-%s">{name}</a>', $pageurle);
}
}
}
答案 1 :(得分:-1)
首先,“var”最后一次在PHP 4中使用,并且在PHP 5中没有业务。
其次,类属性不能运行任何代码(例如数组()中的“。”)。
以下是解决方法:
class MyClass
{
private $breadcrumb_templates;
public function __construct()
{
$this->breadcrumb_templates = array(
'separator' => '→',
'link' => '<a href="{target}">{name}</a>',
'wrapper' => '<div class="breadcrumbs">{items}</div>',
);
}
}