Новый комментарий

Serega 04.07.2017 в 11:57

Привет, Такой вопрос по домашке, Через оператор if определяю число четное и нечетное, а вот через тернарный оператор ни как не получается.)

ivashkevich 04.07.2017 в 12:16

Как вариант:

echo $x % 2 == 0 ? 'четное' : 'нечетное';
ol 21.09.2017 в 16:20

Элегантно.

Igorencio 21.11.2018 в 19:44

echo ($x % 2 == 0) ? 'четное' : 'нечетное';
нужны ли тут скобки?

ivashkevich 22.11.2018 в 09:14

нет

[email protected] 04.02.2019 в 20:21

У меня так)

echo $x % 2 ? 'нечетное' : 'четное';
ivashkevich 07.02.2019 в 12:51

Не самое очевидное решение. Лучше явно сравнивать результат с нулём.

[email protected] 07.08.2017 в 21:50

Привет, хочу водить числа не в код, а в браузере и использовать их, как это лучше сделать?

ivashkevich 08.08.2017 в 01:49

Привет, хорошее желание! Скоро будет урок по этой теме, не забегай вперед.

Ogurchik 09.08.2017 в 13:33

Привет! В примере про четное-нечетное, если ввести, например, $x = 2.2 (т.е. присвоить не integer, а float), то результат выводится как "четное", хотя это дробное число. Скажи, пожалуйста, почему так происходит и как сделать проверку условия на целочисленное значение?

ivashkevich 10.08.2017 в 17:51

Привет, можно в самом начале сделать вызов функции is_int(число), которая проверит является ли значение целым числом, и вернёт true или false. Документация по функции тут.

Ogurchik 11.08.2017 в 11:55

Спасибо! Всё получилось)
Еще 1 вопрос. В последнем примере этого урока, если я не ошибаюсь, правильно будет написать условие if ($x >= 100) , а не if ($x > 100). Посмотрите, пожалуйста.

ivashkevich 12.08.2017 в 02:32

Совершенно верно! Спасибо, исправил =)

phenomg 09.08.2017 в 13:38

2) Выполнятся 1 и 4 выражение, так как "string" и 5 переводятся в значение true, в то время как 0 и null (отсутствие значения) преобразуются в значение false.

3)

$a = 5;
$number = $a / 2 == 0 ? "четным" : "нечетным";

echo "Число $a является $number";
ivashkevich 10.08.2017 в 17:53

Совершенно верно =)

Igorencio 21.11.2018 в 19:49

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

ivashkevich 22.11.2018 в 09:15

Действительно, глаз уже замылился проверять. Спасибо.

ivashkevich 22.11.2018 в 09:16

Тут у Вас ошибку нашли - так не работает.

Generalisimus 02.09.2017 в 01:25
<?php
/*
if ('ball in goal'){
    echo "nice shoot";
}
else {
    echo "bol in out";
}
*/
/*
if (0) {
    echo "true";
}
else {
    echo "false";
}
*/
/*
 if (null) {
    echo"true it`s null";
}
else {
    echo"it is wrong number";
}
*/
/*
if (5) {
    echo "password is correct";
}
else {
    echo  "password is incorrect";
} // в данном случае число 5 явлается числом true
*/
/*
$a=5;
if ($a%2) {
    echo "переменная  нечетная";
} else {
    echo "переменная  четная";
}
serb2017 08.11.2017 в 17:18
$x = 7 ;
echo  '<br>', 'число  ', $x ;
$x=$x % 2 == 0 ? '  чётное' : '  нечётное' ;
echo   $x ;

На экране:
число 7 нечётное

ivashkevich 09.11.2017 в 17:36

Хорошо, но есть пара мелких замечаний:

  1. Не стоит переменной $x, в которой лежит число, присваивать строку. Ваша переменная должна быть для чего-то предназначенной, и нельзя в неё записывать что-то постороннее. Назовите итоговую переменную $result, если уж хочется использовать переменную. А вообще - здесь сразу можно писать:
    echo $x % 2 == 0 ? '  чётное' : '  нечётное' ;
  2. Поправьте отступы. У вас местами по 2 пробела в коде. Такого быть не должно. Прочитайте про Reformat Code в PhpStorm.
serb2017 09.11.2017 в 18:02

Прочитал и воспользовался Reformat Code в PhpStorm. Полезная штука !

ivashkevich 10.11.2017 в 17:29

А-то!)

WarLikeLaux 09.11.2017 в 22:53

enter image description here

ivashkevich 10.11.2017 в 17:30

Гуд)

markEvillive 07.02.2018 в 03:33
<?php
if ('string') {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}// Условие выполнено, ибо любое ненулевое чисо (строка) приводится к true, и условие выполняется
 echo "<br>";
if (0) {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
} // Условие не выполнено, ибо нулевое значение приводится к false
echo "<br>";
if (null) {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
} // То же, что и в предыдущем случае
echo "<br>";
if (5) {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
} // условие выполнено
echo "<br>";
?>

Проверка четности:

  1. С помощью тернарного оператора:

    <?php
    $x = 7;
    $even = $x % 2 == 0 ? 'Число четное' : 'Число нечетное';
    echo $even;
    ?>
  2. С помощью if-else:

    <?php
    $x = 10;
    if($x % 2 == 0){
    echo 'Число четное';
    }else{
    echo 'Число нечетное';
    }
    ?>
  3. С помощью switch:
    <?php
    $x = 5;
    switch ($x % 2){
    case 0:
        echo 'Число четное';
        break;
    default:
        echo 'Число нечетное';
    }
    ?>
ivashkevich 07.02.2018 в 17:12

Отлично! Плюс за вариант со switch-case! =)

1nSide 25.03.2018 в 15:49
$x = random_int(-1, 10);

if ($x > 0) {
    echo 'число ' . $x . ' четное число или нет? ';
    echo '<br>' . '<br>';

    switch ($x) {
        case $x % 2 == 0:
            echo 'число ' . $x . ' четное';
            break;
        case $x % 2 == 1:
            echo 'число ' . $x . ' нечетное';
            break;
   }
} else { 
   echo 'число меньше или равно 0';
}
ivashkevich 25.03.2018 в 17:10

Ок, из улучшений можно сделать следующее:

echo '<br>' . '<br>';

можно упростить до

echo '<br><br>';

А вот это:

case $x % 2 == 1:

лучше заменить на

default:

Так как:

  • во-первых, лучше всегда делать секцию default
  • во-вторых, интерпретатору не нужно будет вычислять выражение $x % 2 == 1 и он просто выберет оставшийся вариант.

Хорошо, что предусмотрели вариант с числом меньше нуля - за это респект :)

[email protected] 23.07.2018 в 23:49
  1. Выполнились только 1 и 4 условия, 2 и 3 условия (а также пустая строка) после приведения к типу Boolean получают значение false и поэтому условия не выполняются.
  2. После выполнения, как всегда, посмотрела уже готовые варианты в комментариях, поняла как можно упростить. И все же высылаю то, что пришло в голову первым
<?php
$x = 70;
$even = 'Четное';
$odd = 'Нечетное';

$y= $x %2 == 0 ? $y=$even : $y=$odd;

echo $y;

?>
ivashkevich 24.07.2018 в 15:49

Не нужно первое, что пришло в голову :)
В программировании важно не только придумать решение и сделать чтобы работало, нужно еще и поработать над его упрощением. Это самое сложное, но делать это нужно.
По поводу вот этой строки:

$y= $x %2 == 0 ? $y=$even : $y=$odd;

Когда вы делаете $y = $even, в $y уже попадает нужное значение. Вам же нужно в $y передать результат тернарного оператора, то есть вот так:

$y= $x % 2 === 0 ? $even : $odd;
[email protected] 24.07.2018 в 17:10

к сожалению, пока то, что первое пришло в голову приходит долго и мучительно. а когда начинаю что-нибудь "мудрить" все ломается ))

вот даже по поводу исправленной строки сидела и 5 минут думала что, как и почему )

ivashkevich 24.07.2018 в 17:33

Это приходит не сразу, нужно время. Я по возможности буду направлять в нужное русло.

Fox-24 10.08.2018 в 16:56
if ('string') {
    echo 'Условие ОК'; // Будет выполняться т.к. идет проверка на true или false. В данном случае строка не пустая и не содержит 0, значит true
}

if (0) {
    echo 'Условие ОК'; // Не будет выполняться т.к. в данном случае строка содержит 0, значит false
}

if (null) {
    echo 'Условие ОК'; // Не будет выполняться null - это отсутствие данныех, а значит false
}

if (5) {
    echo 'Условие ОК'; // Будет выполняться т.к. в данном случае строка содержит 5(не 0 и не пустую строку), значит true
}

$x = 2; // Вводные данные

$result = $x % 2 == 0 ? "Число $x четное" : "Число $x не четное"; // Проверка остатка при делении на 2 и запись результата проверки условия в переменную result

echo $result; // Выводим результат
ivashkevich 10.08.2018 в 20:05
if (0) {
    echo 'Условие ОК'; // Не будет выполняться т.к. в данном случае строка содержит 0, значит false
}

if (5) {
    echo 'Условие ОК'; // Будет выполняться т.к. в данном случае строка содержит 5(не 0 и не пустую строку), значит true
}

Это не строки, это - числа. Ещё можно просто назвать это выражениями, но не строками.

А так - всё хорошо =)

Fox-24 10.08.2018 в 20:10

Да, конечно, был не внимателен при описании. Спасибо!:)

Gleb 13.08.2018 в 14:21

В примере про четное/нечетное, если ввести число состоящее более чем из 15 цифр, например, 9999999999999999 (16 цифр), то результат выводится как "Число чётное". Это баг или фича? ))

ivashkevich 13.08.2018 в 15:26

Это баг) можете прочитать об ограничениях значений типа integer - они не бесконечны.

honor 28.08.2018 в 09:58
$a = 3;
$result = $a % 2 == 0 ? 'чётное' : 'нечетное';
echo $result;
ivashkevich 01.09.2018 в 13:15

Отлично!

Ros 23.09.2018 в 13:14
$x = -6;
if ($x <= 0) {
 echo 'Число меньше или равно нулю';
}
else {
    echo $x % 2 == 0 ? 'Чётное' : 'Нечётное';
}
ivashkevich 24.09.2018 в 22:59

норм!

mangol1167 29.10.2018 в 18:53
<?php

if ('string') {
    echo 'Условие выполнилось'; // строка получается true
}
echo '<br>';

if (0) {
    echo 'Условие выполнилось'; // ноль получается как false
}
echo '<br>';

if (null) {
    echo 'Условие выполнилось'; // null пустая строка тоже как false
}
echo '<br>';

if (5) {
    echo 'Условие выполнилось'; // положительное число интерпритируется как true
}

echo '<br>';
$x = 6;

$result = $x % 2 == 0 ? 'Четное число' : 'Нечетное число'; // проверяем равен ли остаток от деления 0 и если да то выводим true, если нет то false

echo $result;
ivashkevich 30.10.2018 в 08:51

null - это не пустая строка. Пустая строка это - ''. А null - это отсутствие значения. При преобразовании к bool приводится в false.

В остальном все правильно.

mangol1167 30.10.2018 в 08:55

не правильно выразил свои мысли))) имел ввиду "нулевое" (отсутствующее) значение))

ivashkevich 30.10.2018 в 10:20

Даже нулевым его называть не стоит. Ноль - это 0. Это все же присутствие значения числа 0. А null - это вообще отсутствие какого-либо значения. Называйте его null, и никак иначе.

mangol1167 30.10.2018 в 10:54

хорошо! Спасибо за разъяснение =)

Yuriy 03.11.2018 в 21:00

читал про то, что использование if ($a === $b) быстрее выполняется, чем if ($a == $b) и switch case. Насколько это верно и имеет смысл такого подхода в программировании?

ivashkevich 04.11.2018 в 00:29

== работает медленнее, потому что приводит перед сравнением аргументы к одному типу. А вот === сразу сравнивает, без приведения типов.

3 == '3' // true

но

3 === '3' // false

Реальной разницы в скорости вы не заметите в 99% случаев, но дело в том, что за счет более строгого сравнения при использовании === достигается бОльшая надёжность кода.

Kutkh 04.11.2018 в 11:12
$x =  3;

$x % 2 ? $result = 'Число нечетное' : $result = 'Число четное';

echo $result;
ivashkevich 04.11.2018 в 13:55

Неправильное использование тернарного оператора - он возвращает результат. Правильно вот так:

$result = $x % 2 === 1 ? 'Число нечетное' : 'Число четное';

То есть присваивать нужно результат его работы, а не внутри него.

Kutkh 04.11.2018 в 13:57

понял, спасибо!

Mike 12.11.2018 в 18:52
$x= 3;
$x%2==0 ? $x='chet' : $x='nechet';
echo $x;
ivashkevich 12.11.2018 в 22:51

Неправильно используете тернарный оператор - смотрите комментарий выше.

virtual2018 19.11.2018 в 21:01
<?php
$number = 1;
echo $result = $number % 2 ? 'нечетное число' : 'четное число';
echo '<br>';

if (‘string’)
    echo 'Условие выполнилось'.'<br>'; //string this is TRUE 
if (0)
    echo 'Условие выполнилось'.'<br>';
else
    echo 'Условие не выполнилось'.'<br>'; // 0 this is FALSE
if (null)
    echo 'Условие выполнилось'.'<br>';
else
    echo 'Условие не выполнилось'.'<br>'; //NULL this is FALSE
if (5)
    echo 'Условие выполнилось'.'<br>'; //5 this is TRUE

нечетное число
Условие выполнилось
Условие не выполнилось
Условие не выполнилось
Условие выполнилось

XXX 31.12.2018 в 14:16
<?php
if('string')
    {echo 'Условие выполняется','<br>';}
else
    {echo 'Условия не выполняется','<br>';}
if(0)
    {echo 'Условие выполняется','<br>';}
else
    {echo 'Условия не выполняется','<br>';}
if(null)
    {echo 'Условие выполняется','<br>';}
else
    {echo 'Условия не выполняется','<br>';}
if(5)
    {echo 'Условие выполняется','<br>';}
else
    {echo 'Условия не выполняется','<br>';}

$x=3;

echo $x%2==0?'Число четное':'число не четное';
SashkoUkraine 17.01.2019 в 17:23
$b = 7;

$result = $b % 2 === 0 ? "четное" : "не четное";

echo $result;

// не четное
ivashkevich 17.01.2019 в 21:18

ок!

Pro100Bah 20.01.2019 в 13:11

В статье
"Хорошо, давайте пройдёмся по особенностям оператора switch, о которых нужно помнить всегда.
3.несколько case-ов могуть быть записаны подряд, тогда код в секции вЫЫполнится при выполнении хотя бы одного из условий."

В 3 условии 2 буквы "Ы" в слове "выыполнится", у Вас опечатка.

ivashkevich 20.01.2019 в 13:21

Спасибо, исправил.

Cloudmeister 21.01.2019 в 22:48

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

ivashkevich 21.01.2019 в 22:52

Ок, постараюсь.

[email protected] 26.01.2019 в 01:15
<?php

$x = 5;

$y = $x % 2 == 0 ? ' четное' : ' нечетное';
echo $x . $y;
ivashkevich 27.01.2019 в 10:48

Помимо того, что имя $y ни о чем не говорит - все ок)

ashfedor 27.02.2019 в 12:34
// Дом задание

if ('string') {
    echo 'Уcловие выполняется'; //  уссоовие выполняется т.к. строка не пустая true
}
echo '<br>';
 if(0){
    echo 'условие выпонилось'; // условие не выпоняется т.к значение false
 }
 else{
    echo 'условие не выпоняется т.к значение false';
 }
echo '<br>';
if(null){
    echo 'условие выпонилось'; // условие не выпоняется т.к значение  null=false
}
else{
    echo 'условие не выпоняется т.к значение  null=false';
}
echo '<br>';
if(5){
    echo 'условие выпонилось 5 - true'; // условие выпоняется т.к значение  true
}
echo '<br>';

$x = 5;
$even = $x % 2 == 0 ? 'четное': 'не четное';
echo 'число' . $x . $even;
ivashkevich 02.03.2019 в 16:43

Ок

NrG 27.02.2019 в 22:05
<?php 

if ('string') {
    echo 'Условие выполнилось' . '<br>';
}
// Условие выполнилось, т.к. строка не пустая, возвращает true

if (0) {
    echo 'Условие выполнилось' . '<br>';
}
// Условие не выполнилось, т.к. "0", пустая строка и null возвращают false

if (null) {
    echo 'Условие выполнилось' . '<br>';
}
// Условие не выполнилось, т.к. null, пустая строка и "0" возвращают false

if (5) {
    echo 'Условие выполнилось'. '<br>';
}
// Условие выполнилось, т.к. число, возвращает true

$a = 23;
$isEvenNum = ($a % 2 == 0) ? 'чётное число' : 'нечётное число';
echo '$a = ' . $a . ' это ' . $isEvenNum; 

?>
ivashkevich 02.03.2019 в 16:44

Ок

lilit 06.03.2019 в 22:02

Сработает 1 и 4, так как значение true. В остальных false.

<?php

$x = 6;
echo $x % 2 == 0 ? 'Четное число' : 'Нечетное число';
ivashkevich 08.03.2019 в 18:57

Отлично

Grewi 10.03.2019 в 20:53
$a = 2;
echo $a % 2 == 0 ? 'число ' . $a . ' четное' : 'число ' . $a . ' не четное';

if ('string'){
    echo 'условие выполнено </br>';
} else {
    echo 'условие не выполненно </br>';
}

if (0) {
    echo 'условие выполненно </br>';
} else {
    echo 'условие не выполеннно </br>';
}

if (null) {
    echo 'условие выполненно </br>';
} else {
    echo 'условия не выполненны </br>';
}

if (5) {
    echo 'условия выполненны </br>';
} else {
    echo 'условия не выполненны </br>';
}
ivashkevich 11.03.2019 в 21:20

Отлично

[email protected] 12.03.2019 в 02:34

Благодарю за уроки в открытом доступе! Очень выручают :)
Столкнулся с проблемой, пытаюсь с помощью оператора условий switch определить четное ли число и когда, например, ввожу значение числа с плавающей точкой у меня все-равно выполняется условие... Подскажи пожалуйста, где я ошибаюсь?

$x = -2.7;
switch ($x % 2) {
    case 0:
        echo 'Число X является четным';
        break;
    case $x > 0:
        echo 'Число Х положительное и не чётное';
        break;
    default:
        echo 'Число Х является отрицательным и не чётным';
}

Спасибо!

ivashkevich 12.03.2019 в 09:47

Для этого достаточно заглянуть в документацию - http://php.net/manual/ru/language.operators.arithmetic.php
И узнать, что оператор % - это ...

[email protected] 12.03.2019 в 13:54

Спасибо!!!

[email protected] 12.03.2019 в 14:02

А вот таким образом можно поступить?

$x = 2;
$a = 'чётное';
$b = 'нечётное';
$resalt = ($x % 2 == 0) ? $a : $b; 
echo '<br> Число x ' . $resalt;
ivashkevich 14.03.2019 в 08:59

Можно. Только resUlt

[email protected] 20.03.2019 в 00:04

Тернарный оператор

<?php
$x = 22;
$number = $x % 2 == 0 ? 'четное' : 'нечетное';
echo $number;
ivashkevich 20.03.2019 в 10:04

ОК. Кроме тернарного оператора почистил ваш ответ - это было писать необязательно.

[email protected] 21.03.2019 в 22:30
<?php
$x = 4;
$a = 'число четное';
$b = 'число не четное';
$num = ($x % 2 == 0) ?  $a :  $b;
ivashkevich 23.03.2019 в 22:27

Отлично!

Boodoo 27.03.2019 в 06:25
<?php
    // Код выполнится, не пустая строка = true;
    if ('string') {
echo 'Условие выполнилось';
} 
    // Код не выполнится, 0 - это false;
    if (0) {
echo 'Условие выполнилось';
} 
    // Код не выполнится, null - это false;
    if (null) {
echo 'Условие выполнилось';
} 
    // Код выполнится, любое число (кроме 0) - это true
    if (5) {
echo 'Условие выполнилось';
} 
// Тернарный оператор
$x = 7;
    echo $x % 2== 0 ? 'Четное' : 'Нечетное';
?>
ivashkevich 27.03.2019 в 11:40

Куда пропали фигурные скобки и переносы? Переделайте в соответствии с уроком.

Boodoo 28.03.2019 в 06:43
<?php
    // Код выполнится, не пустая строка = true;
    if ('string') {
echo 'Условие выполнилось';
} 
    // Код не выполнится, 0 - это false;
    if (0) {
echo 'Условие выполнилось';
} 
    // Код не выполнится, null - это false;
    if (null) {
echo 'Условие выполнилось';
} 
    // Код выполнится, любое число (кроме 0) - это true
    if (5) {
echo 'Условие выполнилось';
} 
// Тернарный оператор
$x = 7;
    echo $x % 2== 0 ? 'Четное' : 'Нечетное';
ivashkevich 29.03.2019 в 15:52

Ок

Dram 15.04.2019 в 16:54

Можно еще вопрос, тестирую условия и не могу понять.
<?php

$x = говнокодер;

if ($x >10) {
echo "Число больше 10";
} elseif ($x <= 10) {
echo "Число меньше или равно 10";
}
else {
echo "Это вообще не число братан :)";
}

Как заставить программу проверять не только значения но и тип?

ivashkevich 15.04.2019 в 16:59

is_int, is_number, gettype. Для объектов - instanceof.

Moskva 28.04.2019 в 12:00

Код:

    echo 'Условия в PHP' . '<br>';
    if ($u1 = 'string') {
        echo '1 - условие выполнилось' . '<br>';
    }
    if ($u2 = 0) {
        echo '2 - условие выполнилось' . '<br>';
    }
    if ($u3 = null) {
        echo '3 - условие выполнилось' . '<br>';
    }
    if ($u4 = 5) {
        echo '4 - условие выполнилось' . '<br>';
    }
    $message1 = $u1 % 2 == 0 ? '1)Чётное' . '<br>' : '1)Нечётное' . '<br>';
    echo $message1;
    $message2 = $u2 % 2 == 0 ? '2)Чётное' . '<br>' : '2)Нечётное' . '<br>';
    echo $message2;
    $message3 = $u3 % 2 == 0 ? '3)Чётное' . '<br>' : '3)Нечётное' . '<br>';
    echo $message3;
    $message4 = $u4 % 2 == 0 ? '4)Чётное' . '<br>' : '4)Нечётное' . '<br>';
    echo $message4;

Результат:
Условия в PHP
1 - условие выполнилось
4 - условие выполнилось
1)Чётное
2)Чётное
3)Чётное
4)Нечётное

Вопрос:
Почему 'string' и null чётные?

ivashkevich 29.04.2019 в 11:39

Они не то чтобы четные. Просто остаток от деления на 2 равен... скольки? Выведите через var_dump

[email protected] 01.05.2019 в 21:48

в первом if строка приводится к true,второй 0 приводится к false,третий null тоже вроде как к false хотя var_dump выводит тоже null,четвёртый 5 переводит в true

<?php
$a = 5;
$a = $a % 2 === 0 ? 'чётное' : 'не чётное';
echo $a;
?>
ivashkevich 02.05.2019 в 17:59

var_dump - выводит значение как есть.
А вот когда мы используем какое-то выражение в условии, то оно приводится сначала к булеву значению.

По поводу решения - если в переменной $a уже начали хранить число, то пусть там только числа и хранятся в дальнейшем. Либо просто сразу выводите результат тернарки:

echo $a % 2 === 0 ? 'чётное' : 'не чётное';

или присваивайте в другую переменную:

$res = $a % 2 === 0 ? 'чётное' : 'не чётное';

Закрывающий тег ?> здесь не нужен - он ставится только в файлах, в которых далее идет HTML-код. В следующих уроках увидите.

[email protected] 14.05.2019 в 05:58

Решения домашнего задания с помощью самих же учеников-гениально и очень полезно.

[email protected] 22.05.2019 в 13:00
$t = 'string';
$arr = ['string',0,null,5];

for($w=0;$w<count($arr);$w++)
{
    switch ($t)
    {
        case ($t == $arr[$w]):
            $mess = 'Условие выполнилось!';
            break;
        default:
            $mess = '';
    }
}
echo (empty($mess) ? '<br>Условие НЕ выполнилось!' : '<br>Условие выполнилось!');
?>
ivashkevich 26.05.2019 в 12:31

Что это вообще такое?

irina-naletova 24.05.2019 в 13:10
$a=15;
$num=$a%2==0 ? 'четное':'нечетное' // выведет нечетное т к остаток от деления равен 1 
echo $num;

не сразу понята как этот оператор работает,но все -таки позднее дошло до меня

ivashkevich 26.05.2019 в 12:32

Отлично. Только название num не подходит. num говорит само за себя, что там лежит какое-то число. Более подходящее название - odd.

irina-naletova 27.05.2019 в 20:43

ОК

murr31 30.05.2019 в 13:34
$i = 11;
$ost = ($i % 2);
$even = ($ost == 0) ? 'Четное число' : 'Нечетное число';
echo $even;
ivashkevich 30.05.2019 в 21:08

Хорошо

[email protected] 01.06.2019 в 19:25
$x = 13;
$result = $x % 2 == 0 ? 'Число четное': 'Число нечетное';
echo $result;
ivashkevich 03.06.2019 в 18:10

Отлично

[email protected] 06.06.2019 в 21:07
<?php
$x = 2;
$result = $x % 2 == 0 ? 'Четное' : 'Нечетное';
echo $result;
echo '<br>';
if ('string') {
    echo 'Условие выполнилось';
}
echo '<br>'; // Кавычки не пустые, поэтому условие выполнилось
if (0) {
    echo 'Условие выполнилось';
}
echo '<br>'; // Условие не выполнилось потому что значение равно 0
if (null) {
    echo 'Условие выполнилось';
}
echo '<br>'; // Условие не выполнилось так как null - отсутсвие значения
if (5) {
    echo 'Условие выполнилось';
}
echo '<br>'; // Условие выполнилось так как числовое значение выполняет условие
ivashkevich 07.06.2019 в 12:27

Отлично

Bizzzon 18.06.2019 в 19:47
$x = 101;
$parity = $x % 2 == 0 ? 'чётное' : 'нечётное';
echo 'Число ' . $x . ' ' . $parity; 

вот, всё работает на ура)

ivashkevich 19.06.2019 в 18:16

Отлично

Bizzzon 18.06.2019 в 19:54

Сначала меня сбило с толку то, что я не могу задавать какие-то действия в результате тернарного оператора. Насколько я понимаю, после "?" идут только результаты, и мы не можем давать туда какие-то действия. Первоначально я сделал ...? echo'Нечётное' : echo'чётное', но после ошибки я это исправил)

ivashkevich 19.06.2019 в 18:17

То, что после ? и после : - выполняется, и после этого получившееся значение возвращается из тернарного оператора.

Reechniy 28.06.2019 в 14:34

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

<?php
$x=random_int(-999,999);
echo 'Выпало число: '.$x ;
echo '<br><br>';
if($x>0) {
    echo 'Число ' . $x . ' четное или нет? ';
    echo '<br><br>';

    switch ($x) {
        case $x % 2 == 0;
            echo 'Число ' . $x . ' четное.';
            break;
        case $x % 2 == 1;
            echo 'Число ' . $x . ' не четное.';
            break;
    }
}
if($x<0) {
    echo 'Число '.$x.' меньше нуля, но является ли оно четным?';
    echo '<br><br>';

    switch ($x){
        case $x%2==0;
            echo 'Число '.$x.' меньше нуля и четное.';
            break;
        case $x%2==-1;
            echo 'Число '.$x.' меньше нуля и нечетное.';
    }
}
if($x==0) {
    echo 'Число ' . $x . ' равно нулю. Все тлен.';
}
ivashkevich 30.06.2019 в 14:58

Отлично

[email protected] 03.07.2019 в 17:48

Привет !
Условия все попробовала, происходит проверка на true или false значение, значения 'string' и 5 являются true и получаем результат 'условие выполнилось'. 0 и null это false значения и получаем 'условие не выполнилось'. Еще если бы строка была пустой '' тоже было бы 'условие не выполнилось', правильно поняла?

проверка на четность с тернарным оператором.

$z=11;
 echo $z % 2== 0 ? 'число четное': 'число не четное';

проверка на четность с помощью if.

$v =10;
 if ($v%2==0){
     echo 'число четное';
 } else {
     echo 'число не четное';
 }
ivashkevich 03.07.2019 в 19:26

Всё отлично

[email protected] 08.07.2019 в 17:10

спасибо )

AlexNew 11.07.2019 в 11:06

Здравствуйте! Какой-то странный этот оператор switch. В нём отсутствует логика?


Пример 1.

Посмотрите, пожалуйста, код:

$var = 1;
      switch ($var)
   {
    case 1:
        case 2:
            echo "Условие выполнено <br>"; break;
    case 3:
        echo "Условие не выполнено <br>"; break;
    default:
    echo "Просто по умолчанию <br>";
   }

Результат выполнения:

Условие выполнено

Почему? Ведь если он заходит с проверкой в case 1 и ничего там не находит, то он вообще ничего не должен выводить. По логике так. Если ничего нет, то ничего и не выводится. Почему вместо этого он выводит то, что стоит в case 2?


Пример 2.

Теперь мы убираем "брейки". Получаем такой код:

$var = 1;
      switch ($var)
   {
    case 1:
        case 2:
            echo "Условие выполнено <br>";
    case 3:
        echo "Условие не выполнено <br>";
    default:
    echo "Просто по умолчанию <br>";
   }

Результат выполнения:

Условие выполнено
Условие не выполнено
Просто по умолчанию

Почему? Ведь если $var = 1, то должно выполниться только то, что относится к case 1, а вместо этого выполняется всё подряд: и case 1, и case 2, и case 3, и даже default! Где логика?

Спасибо за ответ!

ivashkevich 12.07.2019 в 05:37

Почитайте документацию. Можно для одного и того же действия перечислить несколько case-ов. Для этого они перечисляются подряд, как у вас и сделано. Если хотите, чтобы в первом case ничего не выполнялось, надо в нем поставить break.

AlexNew 12.07.2019 в 09:21

Спасибо Вам за ответ. Давайте я введу для себя правило, чтобы в будущем сразу ему следовать. :)

Если проверка switch заходит хотя бы в один case, то проверка условий во всех остальных case, а также в default не выполняется.

Это значит, что если нет окончания оператора switch с помощью break, то оператор switch продолжит своё выполнение с заходом во все другие части case и в часть default без проверки, то есть вне зависимости от значения выражения, написанного в скобках switch (). Такие заходы будут выполняться, пока не произойдёт одно из двух: будет обнаружен break, либо оператор switch подойдёт к концу, выполнив все части case и default.

Это правильно?

ivashkevich 14.07.2019 в 06:36

Вроде правильно) Но как-то сложно. Правильная и простая формулировка есть в официальной документации.

AlexxxEy 15.07.2019 в 23:45

Задание 1.
Значения 'string' и 5 являются для условия true.
Значения 0 и null как false.

Задание 2.

$c = 2;
$x = $c % 2 == 0 ? print "Число $c четное." : print "Число $c не четное.";
ivashkevich 16.07.2019 в 01:44

Правильно так:

print $x = $c % 2 == 0 ? "Число $c четное." : "Число $c не четное.";

Результат тернарного оператора возвращается. Его можно и в переменную присвоить. А выполнять вывод внутри самого оператора не нужно.

ChelovekAndrey 30.07.2019 в 22:17

Сносно?

<?php
                $string='Good morning';
                echo 'Ваш личный помощник: <br>';
                if ($string === 'Good morning') {
                    echo $string . ', my friend';
                } else {
                    echo 'Go back, and sleep, bro';
                };

                echo '<br><br>';

                $payBack = 0;
                echo 'Сообщение от Банка <br>';

                if ($payBack == 0) {
                    echo 'Ваш долг уплачен, и равен ' . $payBack . '$';
                } elseif ($payBack < 0) {
                    echo 'Мы скоро вернем, честно.';
                } else {
                    echo 'Ваш долг равен ' . $payBack. '$';
                };

                echo '<br><br>';

                $x = null;
                echo 'Я правильно всё понял? <br>';
                if ($x == null) {
                    echo 'Совершенно верно!';
                } else {
                    echo 'Что-то тут не так, почему у тебя переменная $x имеет значение (' . $x . ')? Ознакомься с заданием.';
                };
                echo '<br><br>';

                $y = 5;
                echo 'Сколько будет 2+3? <br> ';

                switch ($y) {
                    case 5:
                        echo $y . ' - Правильно! А ты силен в математике!';
                        break;
                    case $y < 5 or $y > 5:
                        echo 'Попробуй другое число, это точно не ' . $y;
                        break;
                    default:
                        echo 'Вообще мимо';
                };

                echo '<br><br> А число ' . $y . ' какое? <br>';

                $num = $y % 2 == 0 ? 'Четное!' : 'Нечетное!';

                echo $num;

                ?>
ivashkevich 31.07.2019 в 04:15

Хорошо

[email protected] 31.07.2019 в 18:05
<?php
$x=4;
echo $x%2==0?" Число четное":" Число нечетное";
?>
ivashkevich 31.07.2019 в 18:42

Отлично

Vladimir96 04.08.2019 в 06:25
//ДЗ
//Проверил операторы
    if ('string') {echo 'Условие выполнилось';}//в условии true, условие выполнилось
    if (0) {echo 'Условие выполнилось';}//условие false, поэтому ничего не вывел
    if (null) {echo 'Условие выполнилось';}//условия не существует, поэтому ничего не вывел
    if (5) {echo 'Условие выполнилось';}//в условии true, условие выполнилось

//Четность числа
    $searchEvenNumber = 423533;
    $resultEvenNumber = $searchEvenNumber % 2 == 0 ? 'Число четное': 'Число не четное';
    echo $resultEvenNumber;
ivashkevich 04.08.2019 в 20:56

Отлично

Ooleg 16.08.2019 в 09:55
<?php
if ('string') {echo 'Условие 1 выполнилось';echo '</br>';}

if (0) {echo 'Условие 2 выполнилось';echo '</br>';}

if (null) {echo 'Условие 3 выполнилось';echo '</br>';}

if (5) {echo 'Условие 4 выполнилось';echo '</br>';}

$x = 13;
echo $x % 2 == 0 ? 'Число ' . $x . ' чётное' . '</br>': 'Число ' . $x . ' нечётное' . '</br>';

?>
ivashkevich 16.08.2019 в 20:31

Отлично

[email protected] 24.08.2019 в 19:04
<?php
$w = 4;
$mod = $w % 2 == 0 ? $w=1 : $w = 0;
if($w){
    echo "Число четное";
}else{
    echo "Число нечетное";
}
ivashkevich 25.08.2019 в 13:48

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

Fail 26.08.2019 в 15:34
$x = readline();

echo $x % 2 === 0 ? 'Четное' : 'Не четное';
ivashkevich 28.08.2019 в 05:38

Отлично

Floppy 16.09.2019 в 09:22
<?php
$x = 13;
$isEven = $x % 2 === 0;
var_dump($isEven);
if ($isEven) {
    echo 'Четное';
} else {
    echo 'Нечетное';
}
ivashkevich 16.09.2019 в 18:47

Надо было через тернарку

Floppy 16.09.2019 в 19:17

Так в 3 строке используется

$isEven = $x % 2 === 0;
// тоже самое что и 
$isEven = $x % 2 === 0 ? true : false;
ivashkevich 16.09.2019 в 19:31

Тернарка не используется ведь. Используется результат логического И. Но никакой тернарки нет. А в задании есть. Привыкайте делать задачи по заданию. В работе пригодится.

H3licoptero 16.09.2019 в 23:46
if ('string') {
    echo 'Условие выполнилось';  // - привело к true т.к. 'string' является строкой(ненулевое 
                                      значение);
}
echo '<br>';

if(0) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие не выполнилось';  //- получилось false т.к. нулевое число = false; 
}
echo '<br>';

if (null) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие не выполнилось'; - значение false, потому что null = 0(но это неточно));
}
echo '<br>';

if (5) {
    echo 'Условие выполнилось';   - true, т.к. 5 это ненулевое значение;
}
echo '<br>';

$x = 2;

$x = $x % 2 == 0 ? 'Число чётное' : 'Число нечётное';

echo $x;

Число чётное
ivashkevich 17.09.2019 в 02:34

Отлично

dliashchenko 22.09.2019 в 21:40
 if ("string") {
    echo "Условие выполнилось"; // 'string' это строка соответственно TRUE
}
 else {
     echo "Условие не выполнилось";
}
echo "<br/>";
 if (0)
{
    echo "Условие выполнилось";
}
 else {
     echo "Условие не выполнилось"; //  0 это FALSE
 }
echo "<br/>";
 if (null)
 {
     echo "Условие выполнилось";
 }
 else {
     echo "Условие не выполнилось"; // null это FALSE
 }
echo "<br/>";
 if (5)
 {
     echo "Условие выполнилось"; // 5 это число соответственно TRUE
 }
 else {
     echo "Условие не выполнилось";
 }
 echo "<br/>";

$a = 43;
$b = $a%2 == 0 ? "четное" : "нечетное";
echo "$b";
ivashkevich 23.09.2019 в 06:30

Отлично

[email protected] 06.10.2019 в 18:47
<?php
$x = -6;

echo ($x %2 == 0) ?  'число четное' : 'число не четное';

?>
ivashkevich 07.10.2019 в 09:56

Отлично

NrG 11.10.2019 в 15:38
if ('string') { // Вернет true потому что строка не пустая
    echo 'Условие выполнилось' . '<br>';
}
if (0) { // Вернет false, т.к. любое число кроме 0 вернет true
    echo 'Условие выполнилось';
}
if (null) { // Вернет false, потому что null не имеет значения
    echo 'Условие выполнилось';
}
if (5) { // Вернет true, т.к. любое число кроме 0 вернет true
    echo 'Условие выполнилось' . '<br>';;
}
$x = 2;
echo ($x % 2 == 0) ? 'Число '. $x . ' четное' : 'Число '. $x . ' нечётное';
ivashkevich 11.10.2019 в 21:18

Супер

sar16520 13.10.2019 в 08:06
<?php

$x= 'string';

if ($x == 'string') {
    echo 'Условие выполнилось';
}else {
    echo 'Условие не выполнилось';
}
echo '<br>';
if ($x == 0) {
    echo 'Условие выполнилось';
}else {
    echo 'Условие не выполнилось';
}
echo '<br>';
if ($x == 'null') {
    echo 'Условие выполнилось';
}else {
    echo 'Условие не выполнилось';
}
echo '<br>';
if ($x == 5) {
    echo 'Условие выполнилось';
}else {
    echo 'Условие не выполнилось';
}
echo '<br>';

$mod = $x % 2 == 0 ? $x= 'Число четное' : $x= 'Число нечетное';

echo $mod;

x=string
Условие выполнилось
Условие выполнилось
Условие не выполнилось
Условие не выполнилось
Число четное
x=0
Условие не выполнилось
Условие выполнилось
Условие не выполнилось
Условие не выполнилось
Число четное
x=null
Условие не выполнилось
Условие выполнилось
Условие выполнилось
Условие не выполнилось
Число четное
x=5
Условие не выполнилось
Условие не выполнилось
Условие не выполнилось
Условие выполнилось
Число не четное

ivashkevich 13.10.2019 в 10:44

Неправильно используется тернарный оператор.

$x= 'Число четное' 

Этим действием вы переопределили значение переменной $x, а потом уже присвоили её значение переменной $mod.

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

sar16520 15.10.2019 в 13:42
<?php 

$mod = $x % 2 == 0 ? 'Число четное' : 'Число нечетное';

echo $mod;

Вот так?

ivashkevich 15.10.2019 в 17:18

Да

babur 30.10.2019 в 19:28

Привет! у меня вопрос, почему не срабатывает когда меняю местами в -$x, надо было перейти на вторую условию да?

$x = -2;
if($x >= 0){
    echo 'Модуль числа: ' . -$x;
}else {
    echo 'Модуль числа: ' . $x;
}
ivashkevich 30.10.2019 в 19:39

Не понял вопроса. Но сделать надо наоборот.

babur 30.10.2019 в 19:57

Можно вот так написать код. но код работает.

$x = 155;
if($x > 0){
    if ($x >= 100) {
        if ($x >= 150) {
            echo 'Число больше либо равно 150';
        }else {
            echo 'Число больше 100 но меньше 150';
        }
    }else {
        echo 'Число больше 0 но меньше 100';
    }
}else {
    echo 'Число меньше либо равно 0';
}
ivashkevich 30.10.2019 в 20:16

Можно. Только к домашнему заданию не имеет никакого отношения.

babur 31.10.2019 в 08:18

Здравствуйте! а вот ДЗ проверьте пожалуйста.

if ('string') {
    echo 'good';
}else{
    echo 'its not good';
}
echo '<br>';
 if (0) {
     echo 'true';
 }else{
    echo 'false';
 }
 echo '<br>';
 if (null) {
    echo 'true';
 }else{
    echo 'false';
 }
 echo '<br>';

$x = 3; 
$result = $x % 2  == 0? 'четное' : 'нечетное';
echo 'число ' . $result;
ivashkevich 31.10.2019 в 09:25

Отлично

[email protected] 31.10.2019 в 19:49

Пытался сделать какую то начальную логику для кристи\нолики.

$x = 0;

    if ($x % 2 == 0) {
        $odd = $x;
    } else {
        $even = $x;
    }

    if ($x == $odd && $x <= 9) {
        echo "Ход крестиков";
    } elseif ($x == $even && $x <= 9) {
        echo "Ход ноликов";
    } elseif ($x > 9){
        echo "ERROR";
    }

Тернарный оператор

$t = 13;

$numberCheck = $t % 2 == 0 ? 'данное число четное' : 'данное число нечетное';
echo $numberCheck;
//данное число нечетное
<?php

if ('string') {
    echo 'the condition is fulfilled'; // строка true
}
echo '<br>';

if (0) {
    echo 'the condition is fulfilled'; // ноль получается как false
}
echo '<br>';

if (null) {
    echo 'the condition is fulfilled'; // null нет заначения - false
}
echo '<br>';

if (5) {
    echo 'the condition is fulfilled'; // положительное число "приходит" как true
}

В последнем, выдавало всего 2 строки "Условие выполнилось" - остальное не прошло через echo - стал считать, что там false, надеюсь я прав)

ivashkevich 01.11.2019 в 18:14

В первом примере если передать 3, то в первом условии возникнет ошибка - используется неопределенная переменная. Да и в целом непонятно, что хотели сделать.

Тернарка - ок

andreskrip 04.11.2019 в 17:03
  • if (‘string’) - выполнится, т.к. непустая строка вернет true;
  • if (0) - не выполнится, т.к. число 0 вернет false;
  • if (null) - аналогично предыдущему вернется false;
  • if (5) - выполнится, ненулевое число вернет true;
//Проверка на четность/нечетность
$x = 24;
$even = $x % 2 == 0 ? 'число $x четное' : 'число $x нечетное';
echo $even;
ivashkevich 04.11.2019 в 19:46

Отлично

Semailk 08.11.2019 в 19:06
<?php

$str = 'string';

if ($str) {
echo 'Условие выполнилось<br>';
}

$x = 0;

if ($x == 0){
    echo 'Условие выполнилось';
if ($x % 2 == 0){
    echo 'Число четное<br>';
}else {
    echo 'Число не четное <br>';
}
}

    if (null){
        echo 'Условие выполнилось<br>';
    }
    else {
        echo 'Условие не выполнено<br>';
    }

   $e = 5;
    if ($e == 5) {
    echo 'Условие выполнено.';
}else {
      echo  'Условие не выполнено';
    }
 if ($e % 2 == 0){
echo 'Число четное';
}else {
    echo 'Число не четное';
}

Условие выполнилось
Условие выполнилось Число четное
Условие не выполнено
Условие выполнено.Число не четное
ivashkevich 08.11.2019 в 19:20

А почему отступы все пляшут? Выровнять нужно как в уроке. В PhpStorm можно просто нажать Ctrl+Alt+L и всё выровняется автоматически.

Для определения четности числа в дз нужно было использовать тернарный оператор.

YuraG 12.11.2019 в 00:16
$valueOddOrEven = $value % 2 == 0? 'even' : 'odd';
ivashkevich 12.11.2019 в 02:43

Отлично

YuraG 12.11.2019 в 20:10
$valueOddOrEven = mt_rand() % 2 == 0? 'even' : 'odd';
можно сделать так и почему ?
ivashkevich 13.11.2019 в 16:58

Тогда уж так:

$value = mt_rand();
$valueOddOrEven = $value % 2 == 0? 'even' : 'odd';
echo $value . ' is ' . $valueOddOrEven;
[email protected] 12.11.2019 в 06:15
if (‘string’) echo "if (‘string’) Условие выполнилось"; else echo "if (‘string’) Условие не выполнилось";
echo '<br>';
if (0) echo "if (0) Условие выполнилось"; else echo "if (0) Условие не выполнилось";
echo '<br>';
if (null) echo "if (null) Условие выполнилось"; else echo "if (null) Условие не выполнилось";
echo '<br>';
if (5) echo "if (5) Условие выполнилось"; else echo "if (5) Условие не выполнилось";
echo '<br>';
$x = 5;
echo $x % 2 == 0 ? 'чётное' : 'нечётное';

if (‘string’) Условие выполнилось
if (0) Условие не выполнилось
if (null) Условие не выполнилось
if (5) Условие выполнилось
нечётное
ivashkevich 12.11.2019 в 19:42

Отлично

Salexandr 25.11.2019 в 14:04

1) Все кроме "0" и "NULL" - TRUE.
(По аналогии с дискретным управлением / бинарной передачей информации потенциальным методом: отсутствие напряжения (false) - например: выкл. двигатель / передача "0"; наличие установленного порогового напряжения (true) - например: вкл. двигатель / передача "1". Т.к. установленное пороговое напряжение для разных систем бывает разным, 3В, 5В, 12В и т.д., то логично нулем (false) считать 0В или NULL, а любое отличное от нуля значение, которое могло бы стать пороговым - считать TRUE.
2) echo $x % 2 == 0 ? 'четное' : 'нечетное';

ivashkevich 26.11.2019 в 10:10

Отлично

[email protected] 04.12.2019 в 21:16
$x = 4;
$num = $x % 2 == 0 ? 'Число четное' : 'Число нечетное';
echo $num;

Решение задачи из задания

ivashkevich 05.12.2019 в 14:50

Отлично

serjioG 13.12.2019 в 12:26
<?php
// Условие будет true. False возможен в случе (пустой строки) и 0;
$a = 'string';
if ($a) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие не выпольнилось';
}
echo '<br>';
// Условие будет false. True возможен c любым числом или строкой. Работает как неявное преобразование;
$a = 0;
if ($a) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие не выпольнилось';
}
echo '<br>';
// Условие будет false. Null не имеет значений и не может быть преобразован;
$a = null;
if ($a) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие не выпольнилось';
}
echo '<br>';
// Условие будет true.
$a = 5;
if ($a) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие не выпольнилось';
}
echo '<br>';
//Условие с тренарным оператором, проверка чётного и нечётного числа;
$x = 2;
$even = $x % 2 == 0 ? 'Число чётное' : 'Число нечётное';
echo '$x = ' .$even;

1)Условие выполнилось - любое строковое или числовое значение будет преобразовано к булевому true
2)Условие не выпольнилось - 0 или '' (пустая строка) всегда будет false
3)Условие не выпольнилось null всегда будут false не могут быть преобразованы в true. Это тип не имеющий значения.
4)Условие выполнилось - То же что 1 задача;
5)$x = Число чётное - вывод значение уравнения;

ivashkevich 14.12.2019 в 15:27

Всё отлично, только по поводу 5-го пункта - нет тут никаких уравнений) Применяйте правильные формулировки, в программировании это очень важно)

serjioG 14.12.2019 в 15:51

Артём, то есть вывод просто: Чётное или нечётное? без $x

ivashkevich 14.12.2019 в 16:03

Да нет, с кодом у вас всё ок. Я про вот это:

5)$x = Число чётное - вывод значение уравнения;

нет никаких уравнений здесь. Уравнения - это в математике.

serjioG 14.12.2019 в 16:13

Ааа. Всё въехал)) то не так написал:)

eNergy 09.01.2020 в 17:40
<?php
    if ('string') {
        echo 'Условие выполнилось'; // условие выполнится, т.к. строка не пустая это true
    }
    if (0) {
        echo 'Условие выполнилось'; // условие не выполнится, т.к. 0 это false
    }
    if (null) {
        echo 'Условие выполнилось'; // условие не выполнится, т.к. null это false
    }
    if (5) {
        echo 'Условие выполнилось'; // условие выполнится, т.к. 5 это true
    }
    $x = 13;
    $isEven = $x % 2 == 0 ? $x . ' чётное' : $x . ' нечётное';
    echo $isEven; // 13 нечётное
?>
ivashkevich 11.01.2020 в 10:53

Отлично

SakuraUzh 15.01.2020 в 18:32
if (‘string’) {echo ‘Условие выполнилось’;} // непустая строка приводится к true, условие выполнится
if (0) {echo ‘Условие выполнилось’;} // 0 приводится к false, условие не выполнится
if (null) {echo ‘Условие выполнилось’;} // null приводится к false, условие не выполнится
if (5) {echo ‘Условие выполнилось’;} // 5 (число, которое не равно 0) приводится к true, условие выполнится.

$number = 5;
$parity = $number % 2 == 0 ? 'Чётное число' : 'Нечётное число';
echo $parity;
ivashkevich 18.01.2020 в 06:13
‘string’

Это что за кавычки такие? Не скидывайте сюда больше нерабочий код.

SakuraUzh 18.01.2020 в 10:33

А это я скопировала ваш код из домашнего задания с вашими кавычками. Мне тоже интересно, что это за кавычки.
В первой части задания мои там только комментарии.

ivashkevich 20.01.2020 в 05:00

Ух, прошу прощения. Была ошибка в ДЗ. Исправил

mrttel 16.01.2020 в 16:59

1

<?php
if ('string') {echo 'Условие выполнилось';} // равно TRUE после приведения в тип boolean
echo '<br>';
if (0) {echo 'Условие выполнилось';} // равно FALSE после приведения в тип boolean
echo '<br>';
if (null) {echo 'Условие выполнилось';} // равно FALSE после приведения в тип boolean
echo '<br>';
if (5) {echo 'Условие выполнилось';} // равно TRUE после приведения в тип boolean

Результат:

Условие выполнилось

Условие выполнилось

2

$x = 12;
$chislo = $x % 2 == 0 ? '$x - чётное' : '$x - не чётное';
echo $chislo;
ivashkevich 18.01.2020 в 07:28

Отлично

Fornit 05.02.2020 в 00:51
$minrand = 0;
$maxrand = 2;
echo 'random X = ', $x = mt_rand($minrand, $maxrand), "<br>";
echo 'результат обычный: ', $x % 2 == 0 ? 'X чётное' : 'X нечётное', "<br>";
echo 'результат для тех, кто не верит в чётность нуля: ', $x == 0 ? 'X это нолик' : ($x % 2 == 0 ? 'X чётное' : 'X нечётное');
ivashkevich 11.02.2020 в 14:54

Отлично

[email protected] 19.02.2020 в 12:39

Добрый день
Почему-то когда делаю вычисление чётности числа тернарным оператором, пишет, unexpected echo, а обычным условием всё хорошо.
Возможно ошибка в синтаксисе, но не соображу где
$x % 2 == 0 ? echo 'Число чётное' : echo 'Число нечётное';

Заранее спасибо за ответ

ivashkevich 19.02.2020 в 19:21

Перечитайте про тернарный оператор. Там не должно быть никаких echo. Ознакомьтесь также с официальной документацией на PHP.net

luckyAl 22.02.2020 в 23:48
<?php

if ('string') {
    echo 'Условие выполнено';// Условие выполнено, ибо любое ненулевое чисо (строка) приводится к true, и условие выполняется
}
else{
    echo 'Условие не выполнено';
}
echo '<br>';
echo '<br>';

if (0) {
    echo 'Условие выполнено';
}
else{
    echo 'Условие не выполнено';// Условие не выполнено, ибо любое нулевое значение приводится к false
}
echo '<br>';
echo '<br>';

if (null) {
    echo 'Условие выполнено';
}
else{
    echo 'Условие не выполнено';// Условие не выполнено, ибо любое нулевое значение  приводится к false
}

echo '<br>';
echo '<br>';

if (5) {
    echo 'Условие выполнено';//Условие выполнено, ибо любое ненулевое число приводится к true, и условие выполняется
}
else{
    echo 'Условие не выполнено';
}

echo '<br>';
echo '<br>';

$x = 6;

$number = $x % 3 == 0 ? 'even' : 'odd-numbered'; // True если $x равно 0 после преобразования типов, выводится 'even'

echo $number;
ivashkevich 23.02.2020 в 19:40

Отлично

Developer 06.04.2020 в 14:53

Мне кажется, что здесь точно не на 3 надо делить, ведь 3 нечётное, а остаток от деления 3 на 3 это 0.

ivashkevich 06.04.2020 в 16:06

Ох ёлки, и правда, проглядел. Спасибо за замечание!

ivashkevich 06.04.2020 в 16:06

Тут нам замечание сделали)

[email protected] 21.03.2020 в 18:41
$x = 5;
$y = "четное";
$z = "нечетное";
$ter = $x / 2 == 0 ? $y : $z;
echo "Число $x $ter!";
ivashkevich 21.03.2020 в 20:52

А если $x = 6? Некорректно работает.

[email protected] 22.03.2020 в 12:46
$x = 7;
$y = "четное";
$z = "нечетное";
$ter = $x % 2 == 0 ? $y : $z;
echo "Число $x $ter!";
ivashkevich 22.03.2020 в 17:48

Ок. Только двойные кавычки стоит заменить на одинарные. Ну и переменные y и z выглядят слишком ненужными.

[email protected] 23.03.2020 в 11:43

Хорошо, понял

WarLikeLaux 05.04.2020 в 12:10
<?php

header('Content-Type: text/html; charset=utf-8');

echo $a = 3 % 2 == 0 ? "Четное число" : "Нечетное число";
ivashkevich 05.04.2020 в 19:23
header('Content-Type: text/html; charset=utf-8');

это не нужно писать

Для чего присваиваете в переменную $a? Она же нигде не используется.

Для строк используйте одинарные кавычки!

Developer 06.04.2020 в 14:50
if ('string') {
echo 'Условие выполнилось';
}//условие выполнится, так как не пустая строка это всегда true

if (0) {
echo 'Условие выполнилось';
}//условие не выполнится, так как 0 всегда false

if (null) {
echo 'Условие выполнилось';
}//условие не выполнится, так как null фактически то же самое что 0 или пустая строка, поэтому false

if (5) {
echo 'Условие выполнилось';
}//условие выполнится, так как любое число больше 0 является true
Определение чётности числа
<?php
$x = 4;
$result = $x % 2 == 0 ? 'Число чётное' : 'Число нечётное';
echo $result;
?>

p.s. всё пробовал, всё работает)

ivashkevich 06.04.2020 в 16:05

Отлично!
?> - в конце файла не ставится

Developer 07.04.2020 в 09:40

Понял

Allaga 07.04.2020 в 17:20
 Моё ДЗ
<?php

$a = 7;

$resalt = $a % 2 == 0 ? 'четное' : 'нечётное';
 echo 'Число a ' .$resalt .'<br>';

if ('string') {
    echo 'Условие выполнилось 1'.'<br>';  // Код выполнится, не пустая строка - это true
}
if (0) {
    echo 'Условие выполнилось 2'.'<br>';  // Код не выполнится, 0 - это false
}
if (null) {
    echo 'Условие выполнилось 3'.'<br>'; // Код не выполнится,null не имеет значений и не может быть преобразован - это false
}
if (5) {
    echo 'Условие выполнилось 4'.'<br>';  // Код выполнится, любое число (кроме 0) - это true
}
ivashkevich 08.04.2020 в 07:51

Отлично

n.yurasheva 08.04.2020 в 00:39
<?php
if ('string') {echo 'Условие выполнилось';}//условие выполнится (true)
if (0) {echo 'Условие выполнилось';}//условие не выполнится (false)
if (null) {echo 'Условие выполнилось';}//условие не выполнится (false)
if (5) {echo 'Условие выполнилось';}//условие выполнится (true)
$x = 15;
echo $x % 2 == 0 ? 'Число чётное' : 'Число нечётное';
ivashkevich 08.04.2020 в 08:04

Отлично

Timurik 08.04.2020 в 08:12
echo '1.';
if ('string') {echo 'Условие выполнилось';}
echo '<br>';
echo '2.';
if (0) {echo 'Условие выполнилось';}
echo '<br>';
echo '3.';
if (null) {echo 'Условие выполнилось';}
echo '<br>';
echo '4.';
if (5) {echo 'Условие выполнилось';}

Результат:
1.Условие выполнилось
2.
3.
4.Условие выполнилось

$x = 2;

$parity = $x % 2 == 0 ? ' - чётное' : ' - нечётное';

echo 'Число '.$x.$parity;

Результат:
Число 2 - чётное

ivashkevich 08.04.2020 в 08:33

Отлично!

[email protected] 08.04.2020 в 19:47
<?php
echo 'Домашнее задание 9'.'<br>';

if ('string') {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}
echo '<br>';
if (0) {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}
echo '<br>';

if ('nul') {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}
echo '<br>';

if (5) {
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}

echo '<br>';
$x = 22;

$chet = $x % 2== 0? "четным" : "нечетным";
echo  "Число X является  $chet";

У МЕНЯ ВОПРОС: как тернарный  оператор понимает перебор значениий? вот это чуть не понял 
ivashkevich 08.04.2020 в 19:50

Какой еще перебор значений?

[email protected] 10.04.2020 в 15:21
<?php

if ('string') {echo 'Условие выполнилось';} //(boolean)'string' = true
if (0) {echo 'Условие выполнилось';}        //(boolean)0 = false
if (null) {echo 'Условие выполнилось';}     //(boolean)null = false
if (5) {echo 'Условие выполнилось';}        //(boolean)5 = true

$x = 533;
echo $x%2 ? 'Число нечётное' : 'Число четное';
ivashkevich 11.04.2020 в 20:45
$x%2 ? 

Не самый корректный код. Правильнее всё же сравнить результат с числом и уже булево значение использовать в условии.

[email protected] 10.04.2020 в 16:43
<?php
$arrayVar = ['string', 0, null, 5];
$i = 0;

while ($i <= (count($arrayVar) - 1)) {

    if ($arrayVar[$i]) {
        echo "Условие-<b>" . $i . " </b>-результат ";
        echo 'Условие выполнилось</br>';
        echo var_dump($arrayVar[$i]) . "</br>";
    } else {
        echo "Условие-<b>" . $i . " </b>-результат ";
        echo 'Условие НЕ выполнилось</br>';
        echo var_dump($arrayVar[$i]) . "</br>";
    }
    $i++;

}
$var = 30;
$ChtNchet =($var % 2 == 0) ? 'Число чётное' : 'Число нечётное';
echo $ChtNchet;
ivashkevich 11.04.2020 в 21:01

Отлично. Только после знака равно нужен пробел

[email protected] 11.04.2020 в 19:04
<?php

if('string')
{
    echo 'Условие выполнено';
} else {
    echo 'Условие не выполнено';
}
echo '<br>';
if (0)
{
    echo 'Условие выполнено';
} else {
    echo 'Условие не выполнено';
}//Условие не выполнено, т.к. 0 имеет значение false.
echo '<br>';
if (null)
{
    echo 'Условие выполнено';
} else {
    echo 'Условие не выполнено';
}//Условие не выполнено, т.к. null - пустое значение, оно равно false.
echo '<br>';
if (5)
{
    echo 'Условие выполнено';
} else {
    echo 'Условие не выполнено';
}//Условие выполнено, т.к. если число больше или равно 0, то булеов значение - true.
echo '<br>';
$x = 3;
echo $x % 2 == 0 ? 'Число четное' : 'Число нечетное';
ivashkevich 11.04.2020 в 21:42

Отлично

Mihail 12.04.2020 в 18:32
if ('string') {echo 'Условие выполнилось';}+
if (0) {echo 'Условие выполнилось';}-
if (null) {echo 'Условие выполнилось';}-
if (5) {echo 'Условие выполнилось';}+

$x = 2;
$isEven = $x % 2 == 0 ? 'Четное':'Нечетное';
echo $isEven;
ivashkevich 13.04.2020 в 14:44

Всё ок, только код оформляйте

[email protected] 12.04.2020 в 18:52
$x=0;
if ($x) {echo 'Условие выполнилось';}
$a = $x % 2 == 0 ? 'четное':'нечетное';
echo 'Число '.$a;
Тернарным оператором возможно ввести условие по нулю?(по типу 'число равно нулю')
ivashkevich 13.04.2020 в 14:45

Что?

pm 13.04.2020 в 06:31
if ('string') {echo 'Условие выполнилось';}// все что отличается от NULL будет true
if (0) {echo 'Условие выполнилось';}//ничего не выведет
if (null) {echo 'Условие выполнилось';}//ничего не выведет
if (5) {echo 'Условие выполнилось';}//условие выполнилось (все что отличается от NULL будет true)

$x = 5;
$x % 2 == 0 ? print "ok" : print "не четное";//кстати в тернарном операторе echo не работает, только print
ivashkevich 13.04.2020 в 14:52

Оформляйте код в редакторе комментариев. Тернарку использовали неправильно, перечитайте урок + официальную документацию для закрепления.

yulya-Yulya 15.04.2020 в 22:16
<?php

if ('string') {
    echo 'Условие выполнилось'; //условие выполнилось, т.к. любое ненулевое значение - true
}
else {
    echo 'Условие не выполнилось';
}
echo '<br>';
if (0) {
    echo 'Условие выполнилось';
}
else {
    echo 'Условие не выполнилось'; //условие не выполнилось, т.к. нулевое значение  - false
}
echo '<br>';
if (null) {
    echo 'Условие выполнилось';//условие не выполнилось, т.к. нулевое значение  - false
}
else {
    echo 'Условие не выполнилось';
}
echo '<br>';
if (5) {
    echo 'Условие выполнилось'; //условие выполнилось, т.к. любое ненулевое значение - true
}
echo '<br>';

echo 'Четное ли число?';

echo '<br>';

$x = 7;

echo $isEven = $x % 2 == 0 ? 'четное' : 'нечетное';
ivashkevich 16.04.2020 в 06:57
echo $isEven =

для чего переменная $isEven?

[email protected] 16.04.2020 в 12:26
<?php
if ('string'){           
    echo 'Условие выполнено';//Условие выполнено(true)
}
echo'<br>';
if (0){
    echo 'Условие выполнено';//Условие не выполнено(0- это false)
}
echo '<br>';
if (null){
    echo 'Условие выполнено';//Условие не выполнено(null-переменная без значения)
}
echo '<br>';
if (5){
    echo 'Условие выполнено';//Условие выполнено(true)
}
echo '<br>';
$x = 3;

$mod = $x % 2==0 ? 'четное':'нечетное';
    echo $mod; // Нечетное
ivashkevich 16.04.2020 в 14:12

Отлично

[email protected] 16.04.2020 в 21:03
<?php
if ('string') {
    echo 'Условие выполнилось', '<br>';
//    Условие выполнилось, потому что строка не пустая и её значение true
}
if (0) {
    echo 'Условие выполнилось', '<br>';
//    Условие не выполнилось, потому что 0 равно false
}
if (null) {
    echo 'Условие выполнилось', '<br>';
//    Условие не выполнилось, потому что null - пустое значение
}
if (5) {
    echo 'Условие выполнилось', '<br>';
//    Условие выполнилось, потому что любое число, кроме 0 - true
}

// Решение через тернарный оператор
$a = mt_rand(1, 10);
echo $a, '<br>';
$x = $a % 2 === 0 ? 'Четное' : 'Нечетное';
echo $x, '<br>';

// Решение через if
$b = mt_rand(1, 10);
echo $b, '<br>';
if ($b % 2 === 0) {
    echo 'Четное', '<br>';
} else {
    echo 'Нечетное', '<br>';
}

// Решение через switch
$c = mt_rand(1,10);
echo $c, '<br>';
switch ($c % 2) {
    case 0:
        echo 'Четное';
        break;
    default:
        echo 'Нечетное';
}
ivashkevich 17.04.2020 в 09:12

Отлично!

Artt 20.04.2020 в 15:08
<?php

if ('string') {
    echo 'Условие выполнилось';
} // условие будет выполнено, т.к.  любая ненулевая строка будет преобразована в true

if (0) {
    echo 'Условие выполнилось';
} // условие не будет выполнено, т.к. 0 будет преобразован в false

if (null) {
    echo 'Условие выполнилось';
} // условие не будет выполнено, т.к. null будет преобразован в false

if (5) {
    echo 'Условие выполнилось';
} // условие будет выполнено, т.к. число 3 будет преобразовано к true

$a = 1;

$isNumberEvenOrOdd = $a % 2 == 0 ? 'EVEN': 'ODD';

echo $isNumberEvenOrOdd;
ivashkevich 20.04.2020 в 18:04

Отлично

Stimi 22.04.2020 в 02:31
<?php
if ('string') {
    echo 'Условие выполнилось';
} //условие выполнилось, так как содержит не нулевое число, не и не пустую строку. приводит к значению true

if (0) {
    echo 'Условие выполнилось';
} // условие не выполнилось, так как указано нулевое число. приводит к false

if (null) {
    echo 'Условие выполнилось';
} // условие не выполнилось, так как указано значение null. приводит к false

if (5) {
    echo 'Условие выполнилось'; ;
} //условие выполнилось, так как содержит не нулевое число, не и не пустую строку. приводит к значению true

$x = 12;
$res = $x % 2 == 0 ? 'число четное' : 'число нечетное' ;
 echo $res;
ivashkevich 22.04.2020 в 06:09

Отлично

annferny 25.04.2020 в 20:00
 <?php
 if ('string') {echo 'Условие выполнилось';} //условие выполнилось
 if (0) {echo 'Условие выполнилось';} //условие не выполнилось
 if (null) {echo 'Условие выполнилось';}//условие не выполнилось
 if (5) {echo 'Условие выполнилось';}//условие выполнилось

 echo '<br>';

 $x = 5;
 $even = $x % 2 == 0 ?  'число четное' : 'число нечетное';
 echo $even;

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

ivashkevich 25.04.2020 в 21:02

Отлично

titelivus 28.04.2020 в 07:49
if ('string') {echo 'Условие выполнилось';}

Строка 'string' преобразуется в булево значение true так, как в строке содержатся символы. Условие выполнится.

if (0) {echo 'Условие выполнилось';}

Число 0 преобразуется в булево значение false так, как 0 в булевой логике это false. Условие не выполнится.

if (null) {echo 'Условие выполнилось';}

null это ничто (пустое значение), а ничто это false :D. Условие не выполнится.

if (5) {echo 'Условие выполнилось';}

Число 5 преобразуется в булево значение true так, как любое число кроме 0 равно true. Условие выполнится.

$x = 101;
echo $x % 2 == 0 ? 'Число четное.' : 'Число нечетное.';
ivashkevich 28.04.2020 в 19:16

Отлично

[email protected] 01.05.2020 в 21:23

Выполняются 1 и 4.
echo $x % 2 ==0 ? 'Четное' : 'Нечетное';

ivashkevich 02.05.2020 в 16:15

Оформляйте код (в редакторе комментариев самая первая кнопка).

==0

тут нужен пробел.

В остальном ОК.

IePyton 04.05.2020 в 13:25
<?php

if ('string') {
    echo 'Условие выполнилось';
} // Условие выполнилось, потому что string дает true

if (0) {
    echo 'Условие выполнилось';
} //Условие не выполнилось, потому что 0 дает false

if (null) {
    echo 'Условие выполнилось';
} //Условие не выполнилось, потому что null дает false

if (5) {
    echo 'Условие выполнилось';
} //Условие выполнилось, потому что любое число, отличное от 0, дает true

$num = 2;

$qEven = $num % 2 == 0 ?  "Число $num четное" : "Число $num нечетное";

echo $qEven;
ivashkevich 06.05.2020 в 13:35

Строки пишутся в одинарных кавычках.

IePyton 06.05.2020 в 15:04

Я так записал, чтобы он распознал переменную.

ivashkevich 06.05.2020 в 20:02

Используй конкатенацию строк или sprintf

IePyton 07.05.2020 в 09:12

Понял, спасибо

nersesyan.sargis 10.05.2020 в 11:31
<?php
if ('string') {echo 'true';
}
else{
    echo 'false';
} // Выполнится успешно, так как целое значение string будет преобразовано к true
echo '<br>';
if (0) {
    echo 'true';
}else{
    echo 'false';
} // Не будет выполнено успешно, так как число 0, поэтому будет преобразовано к false
echo '<br>';
if (null) {
    echo 'true';
}else{
    echo 'false';
}  // Не будет выполнено успешно, так как значение равно нулю, поэтому будет преобразовано к false
echo '<br>';
if (5) {
    echo 'true';
}else{
    echo 'false';
}  // Выполнится успешно, так как целое значение равно 5 и будет преобразовано к true
echo '<br><br>';
$num=1280;
echo $res = $num % 2 ? 'нечетное число' : 'четное число';
echo '<br>';
// четное число
ivashkevich 10.05.2020 в 18:27
echo $res = $num % 2 ? 'нечетное число' : 'четное число';

Для чего переменная $res?

$num % 2 лучше явно сравнить с нулем

И проблема с форматированием. Делайте отступы как в уроках. Для этого в шторме можно нажать Ctrl+Alt+L

Alex-neo 13.05.2020 в 22:11
<?php
$x = 56;
if ('string') {
    echo 'Условие выполнилось';
} else {
    echo 'Условие НЕ выполнелось';
}
//Условие выполнилось, потому что true

<?php
$x = 56;
if (0) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие НЕ выполнелось';
}
// Условие НЕ выполнелось, потому что 56 не 0

<?php
$x = 56;
if (null) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие НЕ выполнилось';
}
//Условие НЕ выполнилось, потому что 56 не null

<?php
$x = 56;
if (5) {
    echo 'Условие выполнилось';
} else {
    echo 'Условие НЕ выполнилось';
}
// Условие выполнилось, потому что 56 и 5 ИСТИНА

<?php
$x = 7;
$y = $x % 2 == 0 ? 'Число чётное' : 'Число НЕчётное';
echo $y;
// Число Нечётное

<?php
$x = 8;
$y = $x % 2 == 0 ? 'Число чётное' : 'Число НЕчётное';
echo $y;
// Число чётное
ivashkevich 14.05.2020 в 13:06

Отлично

[email protected] 15.05.2020 в 19:58
<?php

$result = $x % 2 == 0? 'четное число' : 'нечетное число';
echo $result;

?>
ivashkevich 16.05.2020 в 12:10

Ок. Только проблема с форматированием. Делайте отступы как в уроках. Для этого в шторме можно нажать Ctrl+Alt+L

Закрывающий тег ?> в конце файла не нужен.

superbobr 16.05.2020 в 22:38
<?php

$integer = 8;

$isEven = $integer % 2 == 0 ? 'even': 'odd';

echo $isEven;
ivashkevich 17.05.2020 в 14:56

Отлично

[email protected] 23.05.2020 в 19:12

Вот моё домашнее задание, постарался сделать минимум и что-бы было просто в понимание)


<?php
if ('string') {
    echo 'условие выполнелось';// получается true
}
    echo '<br>';
if (0) {
    echo 'условие выполнелось';// получается false
}
    echo '<br>';
if (null) {
    echo 'условие выполнелось';// получается false
}
    echo '<br>';
if (5) {
    echo 'условие выполнелось';// получается true
}
/*Проверка тернарным оператором число на чётность
либо нечётность*/
    echo '<br>';
    $f = 9;
    $value = $f % 2 == 0 ? 'чётное' : 'нечётное';
    echo $value;
ivashkevich 23.05.2020 в 21:09

Отлично

[email protected] 02.06.2020 в 18:15

Мне очень нравится курс и интересные упражнения в конце урока! Спасибо большое. Написала свое решение второго задания и посмотрела предлагаемое решение - верное использование тождественного равенства, ведь правда в значение переменной $number (в моем случае) может быть поставлена строка, как например '9' и тогда при обычном или тождественном равенстве вывод 'число 9 - нечетное' не изменится. Тогда вопрос: почему используется '===' вместо '='? )

<?php
    if ('string') { //true
        echo 'Условие выполнилось'; //надпись появится, поскольку в условии стоит строка!= false
    }
    if (0) { //false
        echo 'Условие выполнилось'; // надпись не появится, поскольку в условии 0, а значит false
    }
    if (null) { //false
        echo 'Условие выполнилось'; //null - имя без какого-либо значения, значит ничего не напечатается
    }
    if (5) { //true
        echo 'Условие выполнилось'; //надпись появится, поскольку в условии стоит число 5!= false
    }

    echo '<br>'; // переход на новую строку для вывода второго задания

    $number = 9; //можно менять значение на любое число
    $result = ($number % 2 == 0) ? 'Число '.$number.' - четное' : 'Число '.$number.' - нечетное';
    echo ($result);
ivashkevich 03.06.2020 в 08:57

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

[email protected] 04.06.2020 в 13:59
<?php
if ('string') {echo 'Условие выполнилось';}
if (0) {echo 'Условие выполнилось';}
if (null) {echo 'Условие выполнилось';}
if (5) {echo 'Условие выполнилось';}

Результат
Условие выполнилось (т.к. 'string' - это не нулевая строка и состоит не из 0)
(не выполнилось, т.к. 0 - нулевое число)
(не выполнилось, т.к. null не является строкой '' или числом)
Условие выполнилось (т.к. 5 - это не нулевое число)

<?php
$x = 2;
$mod = ($x % 2 == 0) ? 'четное':'нечетное';
echo 'Число:' .$mod;

Результат:
Число:четное

<?php
$x = 3;
$mod = ($x % 2 == 0) ? 'четное':'нечетное';
echo 'Число:' .$mod;

Результат:
Число:нечетное
ivashkevich 06.06.2020 в 08:04

Отлично

UtillitE 24.06.2020 в 08:28
 Привет!
<?php
$x = 6;
echo $x % 2 == 0 ? 'чётное' : 'нечётное';
ivashkevich 24.06.2020 в 14:28

Супер!

[email protected] 26.06.2020 в 01:44
<?php
if ('string') {echo 'Условие выполнилось <br>';} else {echo 'нет <br>';} // string==true (выполнилось)
if (0) {echo 'Условие выполнилось <br>';} else {echo 'нет <br>';}  // 0==false (нет)
if (null) {echo 'Условие выполнилось <br>';} else {echo 'нет <br>';} // null==false (нет)
if (5) {echo 'Условие выполнилось <br>';} else {echo 'нет <br>';} // 5==true (выполнилось)

$x = 10;

$odd = $x % 2 == 0 ? 'четное' : 'нечетное';

echo 'Число ' .$odd;
ivashkevich 26.06.2020 в 09:29

Отлично

rumsonius 28.06.2020 в 19:34

Добрый вечер

<?php
$x = 'string';
if($x){
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}
echo '<br>';
$y = 0;
if($y == 0){
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}
echo '<br>';
$c = 'null';
if($c == !null){
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}
echo '<br>';
$d = 5;
if($d < 10){
    echo 'Условие выполнено';
}else{
    echo 'Условие не выполнено';
}
echo '<br>';
$z = 10;
echo $z % 2 == 0 ? 'Четное' : 'Нечетное';

Результат:
Условие выполнено
Условие выполнено
Условие выполнено
Условие выполнено
Четное

ivashkevich 29.06.2020 в 11:17

Отлично. Только проблема с форматированием. Делайте отступы и переносы как в уроках. Для этого в шторме можно нажать Ctrl+Alt+L

rumsonius 29.06.2020 в 11:41

Понял, спасибо.

[email protected] 03.07.2020 в 21:59
<?php
if ('string') {echo 'Условие 1 выполнилось';}
if (0) {echo 'Условие 2 выполнилось' ;}
if (null) {echo 'Условие 3 выполнилось';}
if (5) {echo 'Условие 4 выполнилось ';}
$x=313;
$x % 2 == 0 ? $a='x четное' : $a='х нечетное';
echo "$a";
?>

Результат: Условие 1 выполнилось Условие 4 выполнилось х нечетное
2 и 3 условия приводятся к False, поэтому они не выполнились. 1 и 4 к true.

ivashkevich 06.07.2020 в 06:56
echo "$a";

Для чего двойные кавычки?

VitaliyB 06.07.2020 в 12:49
$x = 3;
echo "Число $x, <br />";
if ($x % 2 == 0) {
    echo "Чётное, '<br />';";
} else {
    echo 'Нечётное', '<br />';
}

echo ($x % 2 == 0) ? 'Чётное' : 'Нечётное';
switch ($x) {

    case $x % 2 == 0: echo 'Чётное'; break;
    default: echo 'Нечётное';
}
ivashkevich 06.07.2020 в 14:53
echo "Чётное, '<br />';";

Что это за месиво из кавычек?) Строки пишутся в одинарных кавычках.

echo ($x % 2 == 0) ? 'Чётное' : 'Нечётное';

Скобки не нужны

switch ($x) {

    case $x % 2 == 0: echo 'Чётное'; break;
    default: echo 'Нечётное';
}

Почему switch($x)? Разве вы значение $x сравниваете с true?
Всё в одну строку не нужно писать, получается непонятная мешанина.

Всё задание решалось в одну строку, непонятно для чего сделано всё остальное.

Nobody 29.07.2020 в 20:19
  1. Выполнятся 1 и 4 выражение, так как их значения не являются пустыми поэтому true, а 0 и null означают отсутствие поэтому false
<?php 

    $x = 5;
    echo '$x = ';
    echo $x % 2 == 0 ? $x . ' - even' : $x . ' - odd';
     $x = 4;
     echo '<br/>';
     echo '$x = ';
    echo $x % 2 == 0 ? $x . ' - even' : $x . ' - odd';
ivashkevich 02.08.2020 в 17:17

Отлично

[email protected] 01.08.2020 в 11:08
<?php

if ('string') {echo 'Условие выполнилось';}
// Условие было выполнено, так как строка 'string' не явно приведена к true

if (0) {echo 'Условие выполнилось';}
// На экране ничего не выведется, т.к. 0 будет приведёт к false

if (null) {echo 'Условие выполнилось';}
// На экране ничего не выведется, т.к. null будет приведёт к false

if (5) {echo 'Условие выполнилось';}
// Условие было выполнено, так как число 5 будет не явно приведено к true

$x = 2;
$evenNumber = $x % 2 == 0 ? 'Чётное число' : 'Не чётное число'; // определяем является ли число X чётным и записываем значение в переменную
echo $x . $evenNumber;
ivashkevich 02.08.2020 в 17:34

Ок, только пробел бы еще между числом и буквами добавить

Sergey503 31.08.2020 в 01:20

Как то так.

if ($a = 'string') {
    echo '1) Условие выполнилось <br>';
}
$b = 0;
if ($b === 0) {
    echo '2) Условие выполнилось <br>';
}
$c = null;
if ($c === null) {
    echo '3) Условие выполнилось <br>';
}
$d = 5;
if ($d >= 0) {
    echo '4) Условие выполнилось <br>';
}
$x = random_int(-2020, 2020);

if ($x >= 0) {
    echo $x % 2 === 0 ? $x . ' четное' : $x . ' нечетное';

    switch ($x) {
        case $x % 2 === 0:
            echo '<br>' . $x . ' четное';
            break;
        default:
            echo '<br>' . $x . ' нечетное';
            break;
    }
} else {
    echo 'число меньше или равно 0';
}
ivashkevich 31.08.2020 в 08:33

Ок

    echo 'число меньше или равно 0';

а вот это неправда

Sergey503 31.08.2020 в 14:53

Нашел ошибку.
Либо менять
($x >= 0) на ($x > 0)
тогда будет "число меньше или равно 0",
либо оставлять первый вариант, и убрать "или равно".

ivashkevich 03.09.2020 в 17:16

Верно

Perlll 31.08.2020 в 16:17

Условия if ('string') {echo 'Условие выполнилось';} if (5) {echo 'Условие выполнилось';} выполнятся, потому что булево значение true и код секции будет выполнен.

Условия if (0) {echo 'Условие выполнилось';} if (null) {echo 'Условие выполнилось';} не выполнятся, потому что приведение к булевому значению вернет false, так как операнд НОЛЬ и null (насколько я понял, null - это отсутствие каких-либо данных, но не пустая строка?!).

Тернарный оператор:

<?php
$x = 15;

$num = $x % 2 == 0 ? 'четное.' : 'не четное.';
echo 'Число ' . $x . ' - ' . $num;
ivashkevich 03.09.2020 в 17:16

Отлично!

elda 05.09.2020 в 12:05
<?php
if ('string') {
    echo 'условия выполнено';
}
else {
    echo 'условия не выполнено';
}
// условия выолнится потому что эта строка
echo'<br>';
if (0) {
    echo 'условия выполнилось';
}
else {
    echo 'условия не выполнилось';
}
// условия не выполнилось потому что любое нулевое значения приводит к false
echo '<br>';
if (null) {
    echo 'условия выполнилось';
}
else{
    echo 'условия не выполнилось';
}
//условия не выполнится потому что null приводит к false
echo '<br>';
if (5) {
    echo 'условия выполнилось';
}
 else {
    echo 'условия не выполнилось' ;
}
//условия выполнится потому что любое не нулевое число приводит к true

условия выполнено
условия не выполнилось
условия не выполнилось
условия выполнилось
ivashkevich 06.09.2020 в 14:33

ок

elda 05.09.2020 в 12:16

тернарный оператор
$x = 4;
$number = $x % 2 == 0 ? 'четное' : 'не четное';
echo $number;

ivashkevich 06.09.2020 в 14:34

Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого.

elda 06.09.2020 в 17:00
<?php
$x = 4;
$number = $x % 2 == 0 ? 'четное':'нечетное'
echo '$number';
ivashkevich 07.09.2020 в 12:50

Отлично

[email protected] 23.10.2020 в 13:29

Снова не совсем было понятно ДЗ.
Надеюсь понял правильно и сделал тоже.

Код:
<?php
$a = 5;
$b = 0;
$c = null;
$d = 4;
$e = 3;

if (is_string($a)) {
echo 'Переменная $a является строкой';}
else {
echo 'Переменная $a не является строкой';
}

echo '<br>';

if ($b == 0) {
echo 'Переменная $b равна нулю';}
else {
echo 'Переменная $b не равна нулю';
}

echo '<br>';

if ($c == null) {
echo 'Переменная $c равна null';}
else {
echo 'Переменная $c не равна null';
}
echo '<br>';

if ($d == 5) {
echo 'Переменная $d равна 5';}
else {
echo 'Переменная $d не равна 5';
}

echo '<br>';

$ChetNeChet = $e % 2 ==0 ? 'Чило $e четное' : 'Число $e нечетное';
echo $ChetNeChet;

Результат

Переменная $a не является строкой
Переменная $b равна нулю
Переменная $c равна null
Переменная $d не равна 5
Число $e нечетное

ivashkevich 26.10.2020 в 05:45

Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого)

P.S. Извините за долгий ответ, дальше будет быстрее.

ValeriiNN 23.10.2020 в 23:18
<?php
if ('string') {
    echo 'Условие выполнилось';
} else {
    echo 'Приведено к значению false';
}

echo '<br>';

if (0) {
    echo 'Условие выполнилось';
}else {
    echo 'Приведено к значению false';
}

echo '<br>';

if (null) {
    echo 'Условие выполнилось';
} else {
    echo 'Приведено к значению false';
}

echo '<br>';

if (5) {
    echo 'Условие выполнилось';

}else {
    echo 'Приведено к значению false';
}
echo '<br>' . '<br>';
// вторая часть//

echo 'ВТОРАЯ ЧАСТЬ ЗАДАНИЯ';

$x = 6;
$evenNamber = $x % 2 == 0 ? ' Четное' : ' Не четное';
echo '<br>' . 'Наше число ' . $x . $evenNamber;
ivashkevich 26.10.2020 в 13:27

Отлично

tnull 27.10.2020 в 09:32
<?php
//1
if ('string') {echo 'Условие выполнилось';} //Выполнилось - преобразуется в bool(true), т.к. строка не пуста и не равна '0' поэтому истина
if (0) {echo 'Условие выполнилось';} //Не выполнилось - 0 преобразуется к bool(false)
if (null) {echo 'Условие выполнилось';} //Не выполненилось - null специальный тип указывающий на ни что преобразуется в bool(false)
if (5) {echo 'Условие выполнилось';} //Выполнилось - 5 преобразуется к bool(true)
echo "<br>";

//2
$num = 5;
$parityMsg = $num % 2 == 0 ? ' Чётное' : ' Нечётное';
echo "Число $num - " . $parityMsg;
?>
ivashkevich 28.10.2020 в 20:22

Отлично. Только строки пишите в одинарных кавычках

pixel 03.11.2020 в 23:05
if ('string') {
    echo 'строка !="" true<br>';
}
if (0) {
    echo '0 = false, условие не выполнено<br>';
}
if (null) {
    echo 'false, т.к. пусто условие не выполнится<br>';
}
if (5) {
    echo 'true число !=0<br>';
}

echo '<br><br>';
$a = 3;
echo $a % 2 == 0 ? 'четное' : 'не четное';
ivashkevich 04.11.2020 в 11:54

Ок

Soundgetcha 15.11.2020 в 01:47
<?php
if ('string') {
    echo 'Условие выполнено'; // выполняется, так как false будет только в случае 0 или Null
}
else{
    echo 'Условие не выполнено';
    }
echo '<br>';

if (0) {
    echo 'Условие выполнено';
    }
else{
    echo 'Условие не выполнено'; // не выполняется, так как 0 все выдает false
    }
echo '<br>';

if (null) {
    echo 'Условие выполнено';
    }
else{
    echo 'Условие не выполнено'; // не выполняется, так как NULL все выдает false
    }
echo '<br>';

if (5) {
    echo 'Условие выполнено'; // выполняется, так как false будет только в случае 0 или Null
    }
else{
    echo 'Условие не выполнено';
    }
echo '<br>';

$x = 9;

$evenOrNot = $x % 2 == 0 ? 'четное' : 'нечетное';
echo 'Число ' . $evenOrNot;

?>
ivashkevich 15.11.2020 в 12:51

Ок. Закрывающий тег ?> в конце файла не нужен.

[email protected] 16.11.2020 в 14:47
<?php
$x = 5;
$res = $x%2 == 0 ? 'четное' : 'нечетное';
echo $res;
?>
ivashkevich 17.11.2020 в 17:19

Отлично

[email protected] 05.12.2020 в 12:53
<?php

if ('string') {echo 'Условие выполнилось';} //Выполнилось - строка больше нуля
if (0) {echo 'Условие выполнилось';} //Не выполнилось - 0 = false
if (null) {echo 'Условие выполнилось';} //Не выполнилось - null = false
if (5) {echo 'Условие выполнилось';} //Выполнилось - 5 int больше нуля
echo "<br>";

$x = 5;
$res = $x % 2 == 0 ? ' Чётное' : ' Нечётное';
echo "Число $x - " . $res;
ivashkevich 06.12.2020 в 07:16

Отлично

IlyaPHP 22.12.2020 в 11:40

Артем, спасибо за уроки!

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

Например есть несколько параметров:

1) Мужчины
2) Женщины
3) Красивые дети
4) Какой-то другой параметр

Вот функция, которая перезаписывает значения:

function my_map_data_Pol( $data ) {
    $map = array(
        'Мужчины' => 'Для мужчин',
        'Женщины' => 'Для женщин',
    );
    return ( array_key_exists( $data, $map ) ) ? $map[ $data ] : $data;
}

А как переписать эту функцию, чтобы выполнялось следующее условие:
Если текст = "Мужчины", то записать "Для мужчин"
Если текст = "Женщины", то записать "Для женщин"
Если текст содержит слово "дети", то записать "Для детей"
Если иное значение, то вообще ничего не записывать.

ivashkevich 24.12.2020 в 19:52
if (array_key_exists($data, $map)) {
    return $map[$data];
}
if (mb_strpos($data, 'дети') !== false) {
    return 'Для детей';
}
return null;
IlyaPHP 25.12.2020 в 07:59

Спасибо, что помогли мне.
Сработал такой код, наверное с пятой попытки)) Видимо делал ошибки в синтаксисе.
Правда по непонятной причине почему-то VPS сервер перестает справлять с нагрузкой, после запуска такого кода и обрывает соединение с базой данных. Хотя не думаю, что эта функция требует более 1 Гб оперативной памяти.
Сделал так:

function my_map_data_Probnik( $data ) {
    $map = array(
        'Женский' => 'Для женщин',
        'Мужской' => 'Для мужчин',

    );
    if (array_key_exists($data, $map)) {
    return $map[$data];
}
    if (mb_strpos($data, 'Дети') !== false) {
    return 'Для детей';
}
    if (mb_strpos($data, 'Малыши') !== false) {
    return 'Для малышей';
}
    return null;
    return ( array_key_exists( $data, $map ) ) ? $map[ $data ] : $data;
}

А еще методом тыка, я понял 2 вещи:
1) Если убрать return null; то функция запишет то, что было записано первоначально.
2) Если вместо return null; написать return 'Для всех';, то запишется это значение.
Вдруг кому пригодится =)

И еще малюсенький вопрос)))
В таком виде функция регистрозависимая. А как будет выглядеть правильное написание регистронезависимой функции?

ivashkevich 26.12.2020 в 21:40

В таком случае на первой строке функции можно сразу привести к нижнему регистру входной аргумент:

$data = mb_strtolower($data);

Ну и дальше везде с маленькими буквами сравнивать

1stClass 02.01.2021 в 20:19

Мне непонятен следующий момент:

Этот код работает верно:

$x = 10;
$chotko = 'Четкое';
$nechetko = 'Нечеткое';
$check1 = ($x % 2 == 0) ? $chotko : $nechetko ;
echo "$check1";

А этот дает ошибку , неожиданное echo:

$y = 20;

$check2 = ($y % 2 == 0 ) ? echo 'Четкое' : echo 'Нечеткое';

echo $check2;

Необходимо обязательно возвращать переменные?

UPD :
Пока писал вопрос, разобрался:

$y = 20;

$check2 = ($y % 2 == 0 ) ? 'Четкое' : 'Нечеткоe';

echo "\n $check2";

ето работает верно

ivashkevich 04.01.2021 в 07:13

Некорректное использование тернарного оператора. Он используется для возврата одного из значений в правой части в левую часть выражения. У вас же он применяется для побочного вызова кода в случае выполнения или невыполнения условия. Используйте в таких случаях if-else.

[email protected] 12.01.2021 в 12:52
<?php
$x=63;
$result= $x%2==0 ? ' - Это число чётное.' : ' - Это число нечётное.';
echo $x.$result;
?>
ivashkevich 13.01.2021 в 05:51

Отлично

Khrystyna 12.01.2021 в 22:59

1 и 4 выражения будут выполнены, так как "string" и 5 переводятся в значение true, в то время как 0 и null (отсутствие значения) преобразуются в значение false.

ivashkevich 13.01.2021 в 05:55

Верно

Bulat 22.01.2021 в 21:45
if ('string') {echo 'Условие 1 выполнилось<br>';}   // выполнилось т.к. непустая строка
if (0) {echo 'Условие 2 выполнилось<br>';}      // не выполнилось т.к. ноль
if (null) {echo 'Условие 3 выполнилось<br>';}       // не выполнилось т.к. пустое
if (5) {echo 'Условие 4 выполнилось<br>';}      // выполнилось т.к. не ноль

$x = 10;
$checkNum = $x % 2 == 0 ? 'четное' : 'нечетное';
echo "Число $x $checkNum <br>";
// "Число 10 четное"
ivashkevich 23.01.2021 в 20:28

Отлично

[email protected] 23.01.2021 в 22:59

if ('string') {echo 'Условие выполнилось';}
echo '<br>';
if (0) {echo 'Условие выполнилось';} // 0 - false
echo '<br>';
if (null) {echo 'Условие выполнилось';} // null - отсутсвие каких-либо данных
echo '<br>';
if (5) {echo 'Условие выполнилось';}

echo '<br>', 'Проверка на чётность: ' , '<br>' ;
$x = 10;

$isEvenNumber = $x % 2 == 0 ? 'чётное' : 'нечётное';

echo 'Число ' . $x . " " . $isEvenNumber;

ivashkevich 24.01.2021 в 04:17

Оформляйте код (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого)

Vladimir96 27.01.2021 в 23:42
<?php
// любое не нулевое или не пустое число будет преобразовано в true
if ('string') {
    echo 'Условие выполнилось';
}
// 0 преобразуется в false
if (0) {
    echo 'Условие НЕ выполнилось';
}
// пустое значение преобразуется в false
if (null) {
    echo 'Условие НЕ выполнилось';
}
// любое не нулевое или не пустое число будет преобразовано в true
if (5) {
    echo 'Условие выполнилось';
}

//определения числа на четность
$number = 18;
$isEven = $number % 2 == 0 ? 'Число четное' : 'Число не четное';
echo $isEven;
$number = 17;
$isEven = $number % 2 == 0 ? 'Число четное' : 'Число не четное';
echo $isEven;
//спасибо за прекрасные уроки
ivashkevich 28.01.2021 в 07:54

Отлично!

//спасибо за прекрасные уроки

пожалуйста)

Zesnar 01.02.2021 в 21:01
<?php

$x='string';

if($x){
    echo'Условие выполнено';
}
//при сравнения типа string, стоки всегда переводятся в числа, а потом сравниваются.//

echo '<br>';

$y=0;

switch ($y) {

    case 'value1':
        echo'Условие выполнилось';
        break;

    default:
        echo'Условие не выполнилось';
        break;
}
//В фигурных скобках мы перечисляем операторы case, после которых указываем значение, с которым сравнивается значение операнда switch.//

echo '<br>';

$z=null;

if (!$z) {
    echo 'Условие выполнилось';
}
//переменная в которой ничего не лежит//

echo '<br>';

$e=5;

if ($e) {
    echo'Условие выполнилось';
}

if($e%2==0){
    echo'Число Чётное';
}else {
    echo'Число нечётное';
}

//Чётное или нечётное//
ivashkevich 04.02.2021 в 07:34
if($e%2==0){
    echo'Число Чётное';
}else {
    echo'Число нечётное';
}

Это нужно было сделать с помощью тернарного оператора

Логические задачи с собеседований