Этот урок набрал набрал достаточно большое количество
комментариев и дальнейшее его комментирование отключено.
Если вы хотели убедиться в правильности выполнения ДЗ или у вас возник вопрос по уроку,
посмотрите ранее добавленные комментарии, кликнув по кнопке ниже. Скорее всего вы найдете там то, что искали.
Если это не помогло - задайте вопрос в чате в телеграме - https://t.me/php_zone
Ты же зпросил не вывод а свойства строки. Вот он и выдал: это строка с 12 символами. Этими символами являются hello world! Чтобы запросить просто вывод пропиши echo $hello, тогда он выведет только то, что написано в строке.
Честно говоря, не очень понял, че надо сделать в ДЗ, хорошо бы, если ответы были бы на какой-нибудь странице, чтобы сверить. Что значит получить !1 ? Такой что ли:
Доброго времени суток.
Вы все правильно поняли, просто посмотрите чему будут равны значения в той или иной ситувции. Не нужны вам на данном этапе никакие ответы, все у вас прекрасно получается =)
Я понял, что если строка начинается с верного числового значения, будет использовано это значение - и в итоге мы получим int(10).
Но раз выдаёт уведомление "Notice: A non well formed numeric value encountered" - значит так нельзя делать?
!1 is bool(false)
!0 is bool(true)
2 && 3 is bool(true)
5 && 0 is bool(false)
3 || 0 is bool(true)
5 / 1 is int(5)
1 / 5 is float(0.2)
5 + '5string' is int(10)
'5' == 5 is bool(true)
'05' == 5 is bool(true)
'05' == '5' is bool(true)
<?php
var_dump(!1);//Очевидно, так как 1 это true - bool(false))
echo '<br>';
var_dump(!0);//0 воспринимается как false - bool(true)
echo '<br>';
var_dump(!true);//Очевидно, обратное значение true это false - bool(false))
echo '<br>';
var_dump(2 && 3);//Оба значения не false - bool(true)
echo '<br>';
var_dump(5 && 0);//Второе значение 0 - bool(false)
echo '<br>';
var_dump(3 || 0);//Хотя бы один из операндов (3) true - bool(true)
echo '<br>';
var_dump(5 / 1);//Деление дает целое число - int(5)
echo '<br>';
var_dump(1 / 5);//Деление дает дробное число - float(0,2)
echo '<br>';
var_dump(5 + '5string');//Если строка начинается с верного числового значения, будет использовано это значение - int(10)
echo '<br>';
var_dump('5' == 5);//Во всех трех следующих случаях работает преобразование строк в числа - bool(true)
echo '<br>';
var_dump('05' == 5);// bool(true)
echo '<br>';
var_dump('05' == '5');//bool(true)
echo '<br>';
?>
ДЗ
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
Notice: A non well formed numeric value encountered in C:\Users\Администратор\Documents\WSK\Git\HowToMakeSites-PHP-\1st.steps\3les.php on line 52
int(10)
bool(true)
bool(true)
bool(true)
P.S: Курс понравился буду проходить дальше :smile:
Почему-то не получается открыть в браузере, в прошлом задании (делала несколько дней назад) все получалось. Теперь по адресу http://myproject.loc/index.php выдает следующее: "Не удается получить доступ к сайту
Сайт myproject.loc не позволяет установить соединение."
Здравствуйте! У меня PHPStorm при написании кода var_dump ( expression: '05' == '5' ); сам добавляет выражение expression: всегда. Избавиться от этого не получилось самостоятельно. Должно ли так быть и на что это влияет? Спасибо!
Здравствуйте, задание просто для того, чтобы ознакомиться с тем, как работает приведение типов в PHP =)
Можно просто проверить себя - предполагаете, какой должен получиться результат и смотрите что на самом деле.
У меня вопрос по этой ситуации:
Почему 2 && 3 выводит true?
Вот ситуацию (5 && 0) я понял так, так как "0" это по умолчанию false, то оператор && выводит false потому что, одно из значений false.
По поводу ситуации (2 && 3), я предполагаю, что все числа, кроме "0" это true, так?
Вкратце, при логических операциях, int и string приводятся к boolean, где 0 и "" (пустая строка) = false, все другие значения = true.
При математических операциях, всегда приводит к int только string, при условии что туда записано число, или строка начинается с числа (все что после числа игнорируется, кстати дробное число тоже нормально "обрезается" из строки), в иных случаях, при попытке привести к int string, php будет ругаться.
При соединении строк int, и boolean (преобразуется в int) переводятся в string. (10->"10", false->"0")
При не строгом сравнении (==, !=), данные приводятся к одному типу, и сравниваются, при строгом (===, !===), сравнивание проходит без приведения типов, сравнение разных типов в этом случае вернет false.
При сравнениях типа <, >, <=, >=, также происходит приведение типов. Также при сравнениях, false = 0, true = 1.
Ура! Есть понимание что, откуда и почему!
bool(false) bool(true) bool(false) bool(true) bool(false) bool(true) int(5) float(0.2) int(10) bool(true) bool(true) bool(true)
Добрый день, мне не понятно почему тут результат
var_dump(!1) = bool(false)
var_dump(!0) = bool(true)
То что ! ОТРИЦАНИЕ, возвращает true, если операнд – false, и наоборот,я понял.
Но почему 0 и 1 выдают разный результат, ведь это оба простые числа, тип INT.
Когда мы поставили ! мы изменили тип INT на bool, это я понял. Но с чем сравнение идет? Почему разные результаты - не понял, прошу помочь понять.
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
Notice: A non well formed numeric value encountered in C:\OpenServer\domains\myproject.loc\index.php on line 18
int(10)
bool(true)
bool(true)
bool(true)
Notice: A non well formed numeric value encountered - нововведение PHP 7.1.x, выдается, когда строка начинается с цифр, но далее содержит не цифровые символы. Подробнее
Корректно ли получать результаты, записав все выражения в массив? Мне показалось, что так проще, потому что не нужно после каждого выражения писать var_dump.
Доброго времени суток! С помощью функции var_dump получил выражения.
Единственное что не совсем получилось, так это выражение 5 + '5string'. Выдает ошибку что неправильно сформированное числовое значение. В остальном вроде всё good)
Самая объёмная пока что тема в разделе про Операторов, очень много info, но мне понравилось:)
Вот моё домашнее задание.
<?php
//домашнее задание
echo '<br>' .'➤ ';
var_dump(!1);
echo '<br>' .'➤ ';
var_dump(!0);
echo '<br>' .'➤ ';
var_dump(!true);
echo '<br>' .'➤ ';
var_dump(2 && 3);
echo '<br>' .'➤ ';
var_dump(5 && 0);
echo '<br>' .'➤ ';
var_dump(3 || 0);
echo '<br>' .'➤ ';
var_dump(5/1);
echo '<br>' .'➤ ';
var_dump(1/5);
echo '<br>' .'➤ ';
var_dump(5 + '5string');
echo '<br>' .'➤ ';
var_dump('5' == 5);
echo '<br>' .'➤ ';
var_dump('05' == 5);
echo '<br>' .'➤ ';
var_dump('05' == '5');
А вот что отобразил мой браузер)
➤ bool(false)
➤ bool(true)
➤ bool(false)
➤ bool(true)
➤ bool(false)
➤ bool(true)
➤ int(5)
➤ float(0.2)
➤
Notice: A non well formed numeric value encountered in C:\Users\vqp99\Documents\domains\test\index.php on line 21
int(10)
➤ bool(true)
➤ bool(true)
➤ bool(true)
P. S. Если что простите что вставил текстовые значки, но это моя слабость)
Суть ухватила. Извилины скрипят от напряжения, но все же это пока теория. Все отображается, как и у остальных. Ответы на возникшие вопросы уже нашла в комментах. Так что не буду грузить лишней информацией.
Вообще конечно всё просто и понятно. Но! PhpStorm почему то лепит слово "expression" в каждом выражении. Почитал в комментах, увидел как убрать. Но хотелось бы и понимания для чего это делается?
На сложение целого числа со строкой ругается, но тем не менее выполняет код, правда складывает два целых числа. Если же попытаться сложить целое число просто со строкой, то через var_dump возвражет int(число). Это я к тому, что код выполнится в браузере, но результат, естественно будет другим.
Почему закрывающий тег не нужен?
В phpstorm когда пишешь php код в html там автоматически ide ставить теги открытия и закрытия. А когда пишешь код в отдельном файле то закрывающий тег не ставится почему так?
Почему результат:
bool(false) !1 -
bool(true) !0 -
bool(false) !true - и т. д.?
Я думал будет:
!1 - bool(false) и так далее, то есть сначала текст, значение дамп и потом перенос строки.
Почему '05' == '5' true?
По идее оператору == не надо переводить в int, а сравнить 2 string. Но тогда строка '05' не равна строке '5'.
Правильный вопрос! Ответ имеется в официальной документации, вот тут.
Я немного не то имел ввиду, но ответ нашёл. Оказывается при сравнения типа string, стоки всегда переводятся в числа, а потом сравниваются. Тут
Спасибо за ответ, у меня как раз возник подобный вопрос, тоже был удивлен что строка почему-то преобразовалась в число
У меня другое отображение:
Результат:
Ты же зпросил не вывод а свойства строки. Вот он и выдал: это строка с 12 символами. Этими символами являются hello world! Чтобы запросить просто вывод пропиши echo $hello, тогда он выведет только то, что написано в строке.
//Только не пропобал поставить <br/>или \n или \r не получилось
результат
и еще сам себе рейтинг поставил -1)))жалко нельзя редактировать коммент
Спасибо за обратную связь, добавил возможность редактировать комментарии. И оформляйте код с помощью markdown-разметки.
Честно говоря, не очень понял, че надо сделать в ДЗ, хорошо бы, если ответы были бы на какой-нибудь странице, чтобы сверить. Что значит получить !1 ? Такой что ли:
Доброго времени суток.
Вы все правильно поняли, просто посмотрите чему будут равны значения в той или иной ситувции. Не нужны вам на данном этапе никакие ответы, все у вас прекрасно получается =)
ок, спасибо
Здравствуйте.
5 + '5string';
- Notice: A non well formed numeric value encounteredПочему нужно обязательно брать кавычки?
Здравствуйте. Потому что это строка. А PHP Вас в свою очередь уведомил, что вы складываете строку с числом, что вообще говоря неверно.
Так это просто мы должны были увидеть, что PHP нас уведомляет, что нельзя число складывать со строкой или нам нужно ещё что-то с этим сделать?
Я понял, что если строка начинается с верного числового значения, будет использовано это значение - и в итоге мы получим int(10).
Но раз выдаёт уведомление "Notice: A non well formed numeric value encountered" - значит так нельзя делать?
Да. Так делать нельзя.
!1 is bool(false)
!0 is bool(true)
2 && 3 is bool(true)
5 && 0 is bool(false)
3 || 0 is bool(true)
5 / 1 is int(5)
1 / 5 is float(0.2)
5 + '5string' is int(10)
'5' == 5 is bool(true)
'05' == 5 is bool(true)
'05' == '5' is bool(true)
Код
Результат
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
P.S: Некоторые трудности возникли с пониманием того, как работает префиксный инкремент и декремент.
Трудности ещё остались?
Нет, попробовал покопаться в инкрементах/декрементах самостоятельно, и понял.
Отлично!)
Решение
Результат
P.S: Курс понравился буду проходить дальше :smile:
Оу, не поддерживает emodji ((
Только символы, только хардкор! Удачи в прохождении :)
код
echo '!1 ';
var_dump(!1);
echo '<br>';
echo '!0 ';
var_dump(!0);
echo '<br>';
echo '!true ';
var_dump(!true);
echo '<br>';
echo '2 && 3 ';
var_dump(2 && 3);
echo '<br>';
echo '5 && 0 ';
var_dump(5 && 0);
echo '<br>';
echo '3 || 0 ';
var_dump(3 || 0);
echo '<br>';
echo '5 / 1 ';
var_dump(5 / 1);
echo '<br>';
echo '1 / 5 ';
var_dump(1 / 5);
echo '<br>';
echo '5 + \'5string\' ';
var_dump(5 + '5string');
echo '<br>';
echo '\'5\' == 5 ';
var_dump('5' == 5);
echo '<br>';
echo '\'05\' == 5 ';
var_dump('05' == 5);
echo '<br>';
echo '\'05\' == \'5\' ';
var_dump('05' == '5');
echo '<br>';
то что выводится в браузере
!1 bool(false)
!0 bool(true)
!true bool(false)
2 && 3 bool(true)
5 && 0 bool(false)
3 || 0 bool(true)
5 / 1 int(5)
1 / 5 float(0.2)
5 + '5string' int(10)
'5' == 5 bool(true)
'05' == 5 bool(true)
'05' == '5' bool(true)
Отлично!
Почему-то не получается открыть в браузере, в прошлом задании (делала несколько дней назад) все получалось. Теперь по адресу http://myproject.loc/index.php выдает следующее: "Не удается получить доступ к сайту
Сайт myproject.loc не позволяет установить соединение."
OpenServer не запущен =)
Честно говоря чего то не догнал суть домашки...
По идее просто в var_dump проставить все эти выражения?!
Да, просто сначала предположите результаты, а затем сравните их с тем, что получается на самом деле.
Доброго времени суток! Можно узнать, что за расширение показывает разными цветами вывод var_dump(); в браузере?
Привет! XDebug. С ним вы еще столкнетесь через пару уроков.
Здравствуйте! У меня PHPStorm при написании кода var_dump ( expression: '05' == '5' ); сам добавляет выражение expression: всегда. Избавиться от этого не получилось самостоятельно. Должно ли так быть и на что это влияет? Спасибо!
Здравствуйте, в настройках шторма можете убрать, называется "Show parameter name hints"
Прошу прощения, но если честно непонятно задание.
Что нужно делать с этими значениями?
!1
!0
!true
2 && 3
5 && 0
3 || 0
5 / 1
1 / 5
5 + '5string'
'5' == 5
'05' == 5
'05' == '5'
Я ж могу из через string вывести.
Например, в описываемом уроке не нашёл аналогичные результаты примеров:
!1
!0
!true
Здравствуйте, задание просто для того, чтобы ознакомиться с тем, как работает приведение типов в PHP =)
Можно просто проверить себя - предполагаете, какой должен получиться результат и смотрите что на самом деле.
В части "Логические операторы" ошибка xor – исключающее ИЛИ, вернёт true, только если один из операторов(операндов) true, а другой – false
Спасибо, исправил =)
Разве во 2 примере не должен быть true, а в 4 - false????
Число 2 не является тождественно равным строке '2'. У них разные типы: число и строка.
У меня вопрос по этой ситуации:
Почему 2 && 3 выводит true?
Вот ситуацию (5 && 0) я понял так, так как "0" это по умолчанию false, то оператор && выводит false потому что, одно из значений false.
По поводу ситуации (2 && 3), я предполагаю, что все числа, кроме "0" это true, так?
Да, при приведении к bool ненулевые числа будут преобразованы к true.
Вкратце, при логических операциях, int и string приводятся к boolean, где 0 и "" (пустая строка) = false, все другие значения = true.
При математических операциях, всегда приводит к int только string, при условии что туда записано число, или строка начинается с числа (все что после числа игнорируется, кстати дробное число тоже нормально "обрезается" из строки), в иных случаях, при попытке привести к int string, php будет ругаться.
При соединении строк int, и boolean (преобразуется в int) переводятся в string. (10->"10", false->"0")
При не строгом сравнении (==, !=), данные приводятся к одному типу, и сравниваются, при строгом (===, !===), сравнивание проходит без приведения типов, сравнение разных типов в этом случае вернет false.
При сравнениях типа <, >, <=, >=, также происходит приведение типов. Также при сравнениях, false = 0, true = 1.
Ну вот как то так. Я ничего не упустил?
Верно
Ура! Есть понимание что, откуда и почему!
bool(false) bool(true) bool(false) bool(true) bool(false) bool(true) int(5) float(0.2) int(10) bool(true) bool(true) bool(true)
Отлично! =)
Добрый день, мне не понятно почему тут результат
var_dump(!1) = bool(false)
var_dump(!0) = bool(true)
То что ! ОТРИЦАНИЕ, возвращает true, если операнд – false, и наоборот,я понял.
Но почему 0 и 1 выдают разный результат, ведь это оба простые числа, тип INT.
Когда мы поставили ! мы изменили тип INT на bool, это я понял. Но с чем сравнение идет? Почему разные результаты - не понял, прошу помочь понять.
Или 0 в пхп по сути синоним false ?
0 при преобразовании к boolean приводится к false.
Ответы
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
Отлично. А можно было и без цикла вывести всё разом через var_dump. Но это очень хорошо, что вы этими знаниями уже обладаете.
Хорошие уроки очень.
Через var_dump() вы наверное это имели в виду?
Именно так!
Артем, а логический оператор xor в своей работе используешь?
Крайне редко. 1 или 2 раза приходилось за всё время работы применить.
Отлично
Отлично
!1 -> false
!0 -> true
!true -> false
2 && 3 -> true
5 && 0 -> false
3 || 0 -> true
5 / 1 -> 5
1 / 5 -> 0.2
5 + '5string' -> 10
'5' == 5 -> true
'05' == 5 -> true
'05' == '5' -> true
Отлично
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
Отлично
Добрый день, это правильно:
var_dump(!1);
var_dump(!0);
var_dump(!true);
var_dump(2 && 3);
var_dump(5 && 0);
var_dump(3 || 0);
var_dump(5/1);
var_dump(1/5);
var_dump(5 + "5 string");
var_dump("5"==5);
var_dump("05"==5);
var_dump("05"=="5");
Отлично
bool(false) bool(true) bool(false) bool(true) bool(false) bool(true) int(5) float(0.2) int(10) bool(true) bool(true) bool(true)
Всё понятно как работает!)
Супер!)
var_dump(!1); //bool(false)
var_dump(!0); //bool(true)
var_dump(!true); //bool(false)
var_dump(2 && 3); //bool(true)
var_dump(5 && 0); //bool(false)
var_dump(3 || 0); //bool(true)
var_dump(5 / 1); //int(5)
var_dump(1 / 5); //float(0.2)
var_dump(5 + '5string'); //int(10)
var_dump('5' == 5); //bool(true)
var_dump('05' == 5); //bool(true)
var_dump('05' == 5); //bool(true)
Отлично
Взгляните пожалуйста, что нибудь получилось?
Отлично. Только принято шапку именовать header а не head.
Скрин результата https://prnt.sc/qjoht4
Отлично
Результат:
Notice: A non well formed numeric value encountered - нововведение PHP 7.1.x, выдается, когда строка начинается с цифр, но далее содержит не цифровые символы. Подробнее
Отлично
Отлично
== проверяет содержимое, а === проверяет тип?
=== И тип, и затем значение (если типы совпали).
== Пытается привести к одному типу и затем сравнить значения.
понял, спасибо
!1 = bool(false)
!0 = bool(true)
!true = bool(false)
2 && 3 = bool(true)
5 && 0 = bool(false)
3 || 0 = bool(true)
5 / 1 = int(1)
1 / 5 = float(0.2)
5 + '5string' = int(10)
'5' == 5 = bool(true)
'05' == 5 = bool(true)
'05' == '5' = bool(true)
Решение:
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
p.s. Всё равно до конца не понял приоритеты операторов если их несколько в выражении, хотя материал прочитал.
Что значит не поняли до конца? Можно либо понять, что они с разным приоритетом выполняются, либо нет. Вот если порядок пока не запомнили - это другое.
Да, я понимаю что разные приоритеты у операторов, но вот если много операторов например не арифметических в одном выражении, вот тут я запутаюсь.
В таких случаях используют скобки, прямо как в математике. Много операторов без скобок лучше не допускать, в них любой запутается =)
Согласен!
2 раза прикрепила ДЗ, а оно пропадает, почему так?
Не знаю, попробуйте ещё раз
Результат:
С помощью функции var_dump() получите результаты следующих выражений.
var_dump(!1) = bool(false)
var_dump(!0) = bool(true)
var_dump(!true) = bool(false)
var_dump(2 && 3) = bool(true)
var_dump(5 && 0) = bool(false)
var_dump(3 || 0) = bool(true)
var_dump(5 / 1) = int(5)
var_dump(1 / 5) = float(0.2)
var_dump(5 + '5string') =
Notice: A non well formed numeric value encountered in D:\xampp\htdocs\phpzone\index8.php on line 28
int(10)
var_dump('5' == 5) = bool(true)
var_dump('05' == 5) = bool(true)
var_dump('05' == '5') = bool(true)
Ок
Извините, но мне было влом прописывать каждое значение вручную X-D
Норм!
?> - в конце файла не ставится
На сколько я понял , связка <?php тело программы ?> работает так . Но и без ?> так же работает .Спасибо!
ОК
результат:
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
Вопрос: при использовании логических операторов "0" - это "faulse", любое число - это "true"?
Только не faulse а false
Решение:
Результат:
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
Ок
Корректно ли получать результаты, записав все выражения в массив? Мне показалось, что так проще, потому что не нужно после каждого выражения писать var_dump.
Вполне корректно, если вы уже знаете про массивы :)
в конце файла не ставится.
!1 = bool(false)
!0 = bool(true)
!true = bool(false)
2 && 3 = bool(true)
5 && 0 = bool(false)
3 || 0 = bool(true)
5 / 1 = int(5)
1 / 5 = float(0.2)
5 + '5string' = int(10)
'5' == 5 = bool(true)
'05' == 5 = bool(true)
'05' == '5' = bool(true)
Верно?
Ага
Ответы:
bool(false), bool(true), bool(false), bool(true), bool(false), bool(false),bool(true), bool(false), bool(true), bool(false), bool(true), int(5), float(0.2), int(10), bool(true), bool(true), bool(true)
Отлично
var_dump(!1) - результат bool(false)
var_dump(!0) - результат bool(true)
var_dump(!true) - результат bool(false)
var_dump(2 && 3) - результат bool(true)
var_dump(5 && 0) - результат bool(false)
var_dump(3 || 0) - результат bool(true)
var_dump(5 / 1) - результат int(5)
var_dump(1 / 5) - результат float(0.2)
var_dump(5 + '5string') - результат int(10)
var_dump('5' == 5) - результат bool(true)
var_dump('05' == 5) - результат bool(true)
var_dump('05' == '5') - результат bool(true)
Отлично
Ок
Ок
!1
!0
!true
2 && 3
5 && 0
3 || 0
5 / 1
1 / 5
5 + '5string'
'5' == 5
'05' == 5
'05' == '5'
!1 -> false
!0 -> true
!true -> false
2 && 3 -> true
5 && 0 -> false
3 || 0 -> true
5 / 1 -> 5
1 / 5 -> 0.2
5 + '5string' -> 10
'5' == 5 -> true
'05' == 5 -> true
'05' == '5' -> true
Оформляйте код (в редакторе комментариев самая первая кнопка).
Ок
Ок
Ок
Отлично
Ок
Результат:
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
string(13) "5 + '5string'"
bool(true)
bool(true)
bool(true)
Отлично, только закрывающий тег ?> в конце файла не нужен.
Спасибо_) Сейчас в документации нашел, почему он не нужен)
ОК. Только оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста.
Спасибо, поправил.
Хорошо. В следующий раз отвечайте на комментарий, а не создавайте новую ветку.
Прощаю)
Задание выполнила, интересно! Возникли небольшие трудности в последних пунктах, но поняла, что используется преобразование строки в числовой тип.
Верно
Супер)
Привет!
Ответы на дз
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
Отлично)
Приветствую, дз
И еще закрыл тег и PHPstorm выдает "Redundant closing tag :26" я что то не так сделал?
Закрывающий тег ?> в конце файла не нужен.
Суть ухватила. Извилины скрипят от напряжения, но все же это пока теория. Все отображается, как и у остальных. Ответы на возникшие вопросы уже нашла в комментах. Так что не буду грузить лишней информацией.
Благодарю за урок!
Пожалуйста)
Кажется что я не понял задания, но если все правильно понял, то получилось так:
Всё именно так, как и требовалось. Отлично! =)
Ок
!1 bool(false)
!0 bool(true)
!true bool(false)
2 && 3 bool(true)
5 && 0 bool(false)
3 || 0 bool(true)
5 / 1 int(5)
1 / 5 float(0.2)
5 + '5string' int(10)
'5' == 5 bool(true)
'05' == 5 bool(true)
'05' == '5' bool(true)
Ок
var_dump(!1);
var_dump(!0);
var_dump(!true);
var_dump( 2 && 3);
var_dump( 5 && 0);
var_dump( 3 || 0);
var_dump( 5 / 1);
var_dump( 1 / 5);
var_dump( 5 + '5string');
var_dump( '5' == 5);
var_dump( '05' == 5);
var_dump( '05' == '5');
Ок
Вообще конечно всё просто и понятно. Но! PhpStorm почему то лепит слово "expression" в каждом выражении. Почитал в комментах, увидел как убрать. Но хотелось бы и понимания для чего это делается?
На сложение целого числа со строкой ругается, но тем не менее выполняет код, правда складывает два целых числа. Если же попытаться сложить целое число просто со строкой, то через var_dump возвражет int(число). Это я к тому, что код выполнится в браузере, но результат, естественно будет другим.
Код на PHP выполняется на сервере, а не в браузере. Об этом был второй урок курса.
Да, это я не верно выразил мысль. Суть в том, что в целом код исполнится.
А вот про expression так и не разобрался. Чисто из любопытства.
var_dump(!1);
var_dump(!0);
var_dump(!true);
var_dump(2 && 3);
var_dump(5 && 0);
var_dump(3 || 0);
var_dump(5 / 1);
var_dump(1 / 5);
var_dump(5 + '5string');
var_dump('5' == 5);
var_dump('05' == 5);
var_dump('05 '== '5');
bool(false) bool(true) bool(false) bool(true) bool(false) bool(true) int(5) float(0.2) int(10) bool(true) bool(true) bool(true)
Ок
Ок. Закрывающий тег ?> в конце файла не нужен.
Почему закрывающий тег не нужен?
В phpstorm когда пишешь php код в html там автоматически ide ставить теги открытия и закрытия. А когда пишешь код в отдельном файле то закрывающий тег не ставится почему так?
Туть
результат
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
Ок
ОК
Ок
Почему результат:
bool(false) !1 -
bool(true) !0 -
bool(false) !true - и т. д.?
Я думал будет:
!1 - bool(false) и так далее, то есть сначала текст, значение дамп и потом перенос строки.
var_dump сам по себе выводит значение уже. Не нужно echo
Ок
Перед var_dump не нужен echo!
Ок
var_dump(!1); // результат boolean false
var_dump(!0); // результат boolean false
var_dump(!true); // результат boolean false
var_dump(2 && 3); // результат boolean false
var_dump(5 && 0); // результат boolean false
var_dump(3 || 0); // результат boolean false
var_dump(5 / 1); // результат int 5
var_dump(1 / 5); // результат float 0,2
var_dump(5 + '5string'); // результат int 10
var_dump('5' == 5); // результат boolean true
var_dump('05' == 5); // результат boolean true
var_dump('05' == '5'); // результат boolean false
Ок. Такое лучше как код оформлять в комментариях
Прошу прощения, "оформлять как код" - это как?
В редакторе комментариев самая первая кнопка)
Нажмите на карандашик и поправьте комментарий, пожалуйста.
Ок
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
int(5)
float(0.2)
int(10)
bool(true)
bool(true)
bool(true)
Ок
Ок!
Отлично
Ок
Ок