Разбираем как читать и понимать сокращенные конструкции (сокращения) и выражения на PHP. А также как самому написать сокращенный и лаконичный код по современным стандартам языка.
1
Предположим мы что-то сравниваем. Например, какую-то дату с текущим временем.
Такое выражение:
Равно этому:
$date = true;
} else {
$date = false;
}
Теперь мы можем использовать переменную $date для проверки проходит ли условие или нет:
}
2
Примерно тот же вариант. Выражение:
Равно этому:
$isSportcar = true;
} else {
$isSportcar = false;
}
После можем использовать это условие:
}
3
Есть условие: $a > $b, если оно верно вернем true, иначе false.
Это:
Равно этому:
return true;
} else {
return false;
}
4
Если переменная $b не пустая, то переменная $a будет равна переменной $b. Иначе $a будет равна false.
Более длинная форма этого же выражения:
5
Сокращенно:
Более длинная форма:
6
Для переменной $image создаем условие, в котором она равна либо первому значению либо второму:
? wp_get_attachment_url(get_post_thumbnail_id($postId))
: $path . '/img/img.jpg';
7
Стиль, перенятый из языка Python. Использует оператор И (&&).
Если выражение слева от оператора выполняется успешно (возвращает true), то мы переходим к следующему условию. И т.д.
Если $type равно car и одновременно равен тому что находится внутри $variable, то переменная $number будет равна значению 100.
Эту же конструкцию можно представить иначе:
При этом скобки можно опустить. Их можно поставить для удобства в чтении кода.
8 (тоже что и 7)
$var2 = $var3;
}
Сокращенно:
9 (тоже что и 7, 8)
Эквивалентно:
10
Это:
Равноценно:
$counts = count($debugs);
}
11 (php 7.4, присваивающий оператор объединения с null)
Это:
Можно сократить:
#7
$type === ‘car’ && $variable && $number = 100;
Если $type равно car и одновременно равен тому что находится внутри $variable, то переменная $number будет равна значению 100.
Почему $type одновременно должен быть равен и тому и другому, если читается сначала $type === ‘car’, а
$variable отдельно возвращает true/false в зависимости от своего значения.
В том случае если первые И покажут верно, доходит до последнего выражения($number = 100) и исполняет его
true&& $true && $number = 100;
?