Чат Telegram
Группа ВКонтакте
Новый комментарий


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

нет

alser700@gmail.com 04.02.2019 в 20:21

У меня так)

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

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

kizil.vitali@gmail.com 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 и он просто выберет оставшийся вариант.

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

nemo.dont@gmail.com 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;
nemo.dont@gmail.com 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

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

90auto90@gmail.com 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

Отлично

s-kiryak@meta.ua 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
И узнать, что оператор % - это ...

s-kiryak@meta.ua 12.03.2019 в 13:54

Спасибо!!!

s-kiryak@meta.ua 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

teslaincredible@yandex.ru 20.03.2019 в 00:04

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

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

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

expert12@yandex.ru 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

krollik1000000@gmail.com 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-код. В следующих уроках увидите.

ponchik157@gmail.com 14.05.2019 в 05:58

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

kamil-uzd@yandex.ru 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

Хорошо

rammbi@yandex.ru 01.06.2019 в 19:25
$x = 13;
$result = $x % 2 == 0 ? 'Число четное': 'Число нечетное';
echo $result;
ivashkevich 03.06.2019 в 18:10

Отлично

Gnev1992@mail.ru 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

Отлично

lenapetrowa92@gmail.com 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

Всё отлично

lenapetrowa92@gmail.com 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

Хорошо

109-kz@mail.ru 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

Отлично

romaartemov1999@gmail.com 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

Отлично

zuxarevaalina88@gmail.com 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

Супер

anton-gogo@mail.ru 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.

anton-gogo@mail.ru 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

Отлично

potapkin.andy@gmail.com 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;
ohaya_kundagu@mail.ru 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

Отлично

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