Статьи

Стандарты кодирования WordPress: одинарные и двойные кавычки

В этой серии статей мы рассмотрим стандарты кодирования WordPress PHP, чтобы лучше понять, как должен быть написан качественный код WordPress.

Конечно, все это задокументировано в стандартах кодирования WordPress, и это сайт, который каждый разработчик WordPress должен иметь в закладках и под рукой при работе над темой, плагином или приложением; Однако, если вы только начинаете разработку WordPress, важно понять, почему соглашения таковы, какими они являются.

В этой статье мы рассмотрим использование одинарных и двойных кавычек, особенно при работе со строками.

Это может быть самая короткая, самая простая статья в серии, но она должна охватывать некоторые важные нюансы, связанные с работой с одинарными, двойными и строками в WordPress.


Прежде чем мы на самом деле обсудим строки, как они относятся к WordPress, важно понять, как язык PHP интерпретирует строки, когда они заключаются в одинарные или двойные кавычки.

Во-первых, самый простой и простой способ определить строку в PHP — это просто заключить ее в одинарные кавычки (то есть символ ‘).

Как и в большинстве языков программирования, существуют способы экранирования символов, чтобы вы могли записать строковый литерал. Например, если вы хотите написать: «Строки в PHP просты» как строку, то вы можете сделать это:

'String\'s in PHP are easy.'

Видеть? Обратная косая черта будет инструктировать PHP писать одиночную кавычку, а не завершать фактическую строку.

Второе, на что следует обратить внимание, это то, что если у вас есть переменная, она не будет заменена в кавычках. Например, предположим, что у вас есть переменная с именем $name и она содержит значение «Envato».

В частности, в коде это будет выглядеть так:

$name = 'Envato'

Если бы вы вставили переменную $name в другую строку, Envato не был бы заменен.

1
2
$name = ‘Envato’;
echo ‘I\’m writing for $name.

Это было бы просто эхом: я пишу для $ name. Это очень весело.

Вот где двойные кавычки начинают пригодиться.

Прямо из руководства по PHP:

Если строка заключена в двойные кавычки («), PHP будет интерпретировать больше escape-последовательностей для специальных символов.

Вы можете прочитать больше о escape-символах и другую информацию в руководстве по PHP , но допустим, что мы должны были переделать некоторые из строк, которые мы определили выше.

Наш первый пример, который содержит экранированную одинарную кавычку, теперь может быть определен так:

"String's in PHP are easy."

В нашем втором примере можно сделать еще один шаг: не только больше не требуется escape-последовательность, но также будет оценена переменная:

1
2
$name = ‘Envato’;
echo «I’m writing for $name. It’s a lot of fun.»;

Вторая строка будет буквально повторяться: я пишу для Envato. Это очень весело.

Итак, рассмотрев это как введение, давайте поговорим о специфике строк в WordPress. Правда в том, что если вы хорошо разбираетесь во всем вышеперечисленном, добавить нечего, кроме нескольких разовых случаев.

В соответствии с соглашениями о кодировании PHP, общее правило, которое следует соблюдать, это всегда использовать одинарные кавычки для определения ваших строк.

Поскольку большая часть работы, выполняемой в WordPress, также включает в себя написание разметки внутри строки PHP, лучше всего помещать эти строки в одинарные кавычки, чтобы атрибуты элемента HTML можно было заключить в двойные кавычки.

Например:

$html = '<a href="http://wordpress.org" target="_blank">WordPress</a>';

Очевидно, что вышеупомянутое делает процесс чтения более понятным, чем использование нескольких escape-символов для обработки двойных кавычек, косой черты и так далее.

Если вы имеете дело с разметкой, которая должна занимать несколько строк, или если вы создаете несколько элементов, некоторые из которых являются дочерними элементами других, я всегда рекомендую делать отступ кода, чтобы он читался так, как это делается в HTML-документе.

Например:

1
2
3
4
5
$name = ‘Tom McFarlin’;
 
$html = ‘<div id=»container»>’;
    $html .= ‘<span>’ .
$html .= </div><!— /#container —>’;

Важно отметить, что это не является частью стандартов кодирования WordPress — это соглашение, которое я просто нахожу полезным, когда речь идет о поддержке кода — однако, напомним, что строки в одинарных кавычках не оценивают значение переменной.

Поэтому важно отметить, что в этом случае мы используем конкатенацию строк для включения определения переменной.

Как и в случае с двойными кавычками в PHP, важно отметить, что бывают случаи, когда их предпочтительнее использовать, особенно когда вам нужно оценить переменную.

Используя пример из кода выше, мы изменили бы его следующим образом:

1
2
3
4
5
$name = ‘Tom McFarlin’;
 
$html = «<div id=’container’>»;
  $html .= «<span>$name
$html .= «</div><!— /#container —>»;

Обратите внимание, что мы заменили все одинарные кавычки на двойные и что нам больше не нужно выполнять какую-либо конкатенацию строк с переменной $name поскольку она будет оценена.

Также важно отметить, что, хотя, возможно, более распространено видеть, что двойные кавычки применяются к атрибутам HTML, одинарные кавычки также работают хорошо, особенно в подобных сценариях.


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

Например, предположим, что вы используете PHP для записи JavaScript, который отвечает за рендеринг некоторого HTML. В этом сценарии вы будете писать много цитат.

Хотя можно просто чередовать стили цитирования, это не сработает в 100% случаев.

Даже Стандарты Кодирования заявляют:

Исключением является JavaScript, который иногда требует двойных или одинарных кавычек.

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


Да, но WordPress делает их чрезвычайно простыми в управлении, и хотя это технически подпадает под проверку данных, это тесно связано именно с тем, что мы обсуждаем в этой статье.

Основная проблема заключается в том, что в некоторых случаях мы можем динамически записывать атрибуты HTML в нашу разметку, значения которых мы не можем предвидеть. В таких случаях мы должны быть в состоянии избежать указанных данных.

К счастью, WordPress предоставляет функцию esc_attr . Проще говоря, эта функция будет принимать входящую строку и кодировать символы, чтобы убедиться, что они правильно отображаются в браузере.

Практически говоря, вы бы использовали его в точности так, как демонстрирует Кодекс:

1
echo ‘<input type=»text» name=»fname» value=»‘ . esc_attr( $_POST[‘fname’] ) . ‘»>’;

Для получения дополнительной информации обязательно ознакомьтесь со статьей Кодекса .


Таким образом, как общее практическое правило, вы должны придерживаться одинарных кавычек, если только вы не собираетесь оценивать строку или возвращать и выводить HTML, JavaScript или, возможно, даже CSS обратно в вызывающий абонент.

Так же, как утверждают стандарты кодирования:

Вы почти никогда не должны избегать кавычек в строке, потому что вы можете просто чередовать свой стиль цитирования.

Так как вы работаете со строками в своей будущей работе, помните об этих принципах, и это может помочь в обеспечении того, чтобы ваши строки были максимально чистыми и легкими для понимания в контексте ваших проектов на основе WordPress.