Справочники, инструменты, документация

PHP: Краткая запись

Альтернативный синтаксис PHP используют в виде вставок в HTML разметку. Код должен быть максимально понятен, поэтому он упрощён для удобства верстальщика.

PHP-код выполняется между тегами <?php ?>. Также возможно указывать сокращённый вид тегов <? ?>, но их не рекомендуется использовать (по умолчанию такое использование тегов запрещено). Даже если запрещено использовать теги <? ?>, сокращённый код вывода переменной <?=$var?> работает в любом случае.

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

Для вывода переменной внутри HTML структуры:

<?php echo $string; ?>

В альтернативном варианте это можно записать как:

<?=$string?>

Предположим мы что-то сравниваем, например, какую-то дату с текущим временем:

// Такое выражение
$date = $someDate > $currentTime;

// Равно этому
if ($someDate > $currentTime) {
  $date = true;
} else {
  $date = false;
}

// Теперь мы можем использовать переменную $date для проверки проходит ли условие или нет
if ($date) {
}

Это отобразит «Улица пуста» если в переменной пусто, иначе будет отображаться адрес street2.

echo empty($address['street2']) ? "Улица пуста" : $address['street2'];

Возвращает значение переменной или значение по умолчанию, если переменная пуста.

echo $address['street2'] ?: 'Empty';
echo empty($address['street2']) ? 'empty' : 'not empty';

Несколько интересных примеров с одним или несколькими различными условиями.

$color = "blue";

// Example #1 Show color without specifying variable 
echo $color ? : "Undefined";
echo "<br>";

// Example #2
echo $color ? $color : "Undefined";
echo "<br>";

// Example #3
echo ($color) ? $color : "Undefined";
echo "<br>";

// Example #4
echo ($color == "blue") ? $color : "Undefined";
echo "<br>";

// Example #5
echo ($color == "" ? $color : ($color == "blue" ? $color : "Undefined"));
echo "<br>";

// Example #6
echo ($color == "blue" ? $color : ($color == "" ? $color : ($color == "" ? $color : "Undefined")));
echo "<br>";

// Example #7
echo ($color != "") ? ($color != "" ? ($color == "blue" ? $color : "Undefined") : "Undefined") : "Undefined";
echo "<br>";

Вложенное сокращение.

echo 'Your score is: '.($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average') );
echo (empty($address['street2']) ? 'Yes' : 'No');