Добавление небольшой строковой переменной в массив вызывает синтаксическую ошибку? - PullRequest
3 голосов
/ 19 марта 2011

Я пытаюсь добавить тире - и определенную строку $pageurle сразу после {target}, чтобы увеличить URL-адрес в href (см. Ниже код), естественно, тире и содержимое переменная $ 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 ]

3 голосов
/ 19 марта 2011

Скорее всего, это потому, что операторы инициализации свойства класса (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);
        }
    }
}
0 голосов
/ 19 марта 2011

Прежде всего, «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>', 
        );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...