在数组中添加一个小字符串变量会导致语法错误?

时间:2011-03-19 02:47:56

标签: php arrays string debugging

我正在尝试在-之后添加一个短划线$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说我做错了什么并显示出错误。我必须在这里做些蠢事......但是什么?您的想法/代码/改进/可能潜入此事非常感谢。

enter image description here

2 个答案:

答案 0 :(得分:3)

非常确定这是因为类属性初始化语句(var给出了它),可能只包含常量或文字。

您不能在声明中执行任何程序。

最好在构造函数中执行此类操作。

修改

说明

class MyClass
{
    public $breadcrumb_templates = array(
        'separator' => '&rarr;',
        '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' => '&rarr;',
            'link'      => '<a href="{target}">{name}</a>',
            'wrapper'   => '<div class="breadcrumbs">{items}</div>', 
        );
    }
}