Есть функция
function fun() {
echo 'a';
}
При сравнении
if ($z || fun()) {
echo 'c';
}
Должно, по идее, выдать с
, так как $z = false,
а fun()
, по идее, true
но при этом if
выдает false
А при проверке
if (fun() == false) {
echo 'false';
}
выдает false
.
Почему эта функция
function fun() {
echo 'a';
}
имеет значение false?
На самом деле, echo - это не функция (это языковая конструкция), echo принимает список аргументов и ничего не возвращает
echo 'a';
Не возвращает никакого значения, а значит результатом выполнения функции будет null
Для начала обратися к документации
Если конструкция return не указана, то функция вернет значение NULL.
Далее, вы выполняете сравнения
if (NULL) ...
if (NULL == false) ...
в обоих случаях NULL
конвертируется в булевский тип и принимает значение false
. Т.е. первое условие не выполнится (после преобразования получится if (false)
). А второе условие выполнится (if (false == false)
)
Если использовать строгое сравнение
if (NULL === false) ...
то преобразования типов происходить не будет и условие не выполнится
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Создаю форум на laravel, использую стандартный набор (Eloquent, Blade) Задача такова: Есть разделы, у разделов категории, у категорий темы, у тем сообщенияНа...
При клике на кнопку,всплывает модалька бутстрапа с формой, после отправки формы появляется модалька "Спасибо, бла бла"без ajax форма работает,...
Собственно, пришёл с таким вопросом, почему не проходят данные в БД? Как ни пробовал, убирал одинарные кавычки, обычные, ставил даже там где...