2010-12-17 2 views
2

Я читаю код RAW отсюда http://www.zfsnippets.com/snippets/view/id/17/output/raw/table-view-helper, где автор делает много слэш-экранов, как это \'class\'.Почему этот код полон косых черт

protected $_attribs = array(
    \'class\' => \'table\', 
    \'cellpadding\' => \'0\', 
    \'cellspacing\' => \'0\', 
    \'border\' => \'0\', 
); 

Из чего я понимаю, это должен быть код, который будет использоваться для построения разметки таблицы. Почему именно автор делает это таким образом и не существует лучшего способа, чем это отвратительное обходное решение. Я думал, что двойные кавычки должны делать "'class'", но не уверены. Кто-нибудь знает наверняка, как правильно это сделать?

Это везде, где этот var называется. Это в основном используется после того, что в стиле сеттер геттерного с array_merge Я думаю

public function setAttribs($options = null) 
{ 
    if (is_array($options)) { 
     $this->_attribs = array_merge($this->_attribs, $options); 
    } 
    return $this; 
} 
+0

Являются ли двойные кавычки менее «отвратительными»? Является ли обратная косая черта «обходным путем»? Кажется, это было бы точно такое же количество символов в любом случае. – Ken 2010-12-17 01:59:51

+1

Полный файл кода, пожалуйста? Я думаю, что это фрагмент кода, который получает `eval`'ed. Я протестировал ` \ 'y \');` и синтаксическая ошибка произошла, как ожидалось. Использование двойных кавычек потребует экранирования `$`. Лучший способ избежать выхода - использовать nowdocs http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc – 2010-12-17 02:00:10

ответ

7

Я думаю, что просто блог или сайт, где принадлежит этот код неправильно избежал его. Просто игнорируйте их.