powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подскажите что это bla==1?2:1
20 сообщений из 20, страница 1 из 1
Подскажите что это bla==1?2:1
    #38237075
delitme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Подскажите пожалуйста что это за запись.
Просто даже не знаю как спросить у гугла

Код: php
1.
$type2==10?1:0



Спасибо.

Можете даже пнуть туда где об этом почитать.
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38237078
delitme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите тока вспомнол это иф елсе правильо?
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38237109
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38237298
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тернарный оператор. Гугл, Википедия.
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38238431
krevedko13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
delitmeДобрый день,
Подскажите пожалуйста что это за запись.
Просто даже не знаю как спросить у гугла

Код: php
1.
$type2==10?1:0



Спасибо.

Можете даже пнуть туда где об этом почитать.

Короткий эквивалент записи

if($type2 == 10)
{
$someVariable = 1;
}
else
{
$someVariable = 0;
}
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38238529
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krevedko13Короткий эквивалент записиДалеко не совсем, но как притянутый за уши частный случай вполне сойдет. Присваивание $someVariable придумали Вы, а в варианте топикстартера никакого присваивания нет. Кроме того, тернарный оператор возвращает значение второго или третьего операнда, а не выполняет в явном виде кусок кода как это делает if...else. Попробуйте в варианте c if...else без излишнего нагромождения сделать что-то вроде такого
Код: php
1.
somefunction($type2==10?1:0, $type3==20?4:5, $type2==50?7:8);
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239703
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,

Это крайне фигово читается. К тому же условия, по которым определяются значения, имеют обыкновение разрастаться по мере развития системы.

Поэтому, наверное, все три аргумента функции нужно поместить в переменные с нормальными
именами и выше по коду присвоить их в нормальных if...else
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239740
авторПоэтому, наверное, все три аргумента функции нужно поместить в переменные с нормальными
именами и выше по коду присвоить их в нормальных if...else
Код: php
1.
$aaa = ($bbb === 10) ? 0 : 2;


как бэ вполне нормально... ;)

ИМХО, if else чаще используется в случае более сложной логики, чем просто присвоение!
Код: php
1.
2.
3.
4.
5.
if($bbb === 10) {
      //что-нибудь делаем
      //что-нибудь делаем
      //что-нибудь делаем
}
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239757
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тернарный операторкак бэ вполне нормально... ;)

Совершенно ненормально. Ибо непонятно, почему это мы так делаем.

тернарный операторИМХО, if else чаще используется в случае более сложной логики, чем просто присвоение!

сложная логика, увы, имеет обыкновение возникать на ровном месте. Поэтому так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
if (...) {
   // Комментарий по поводу
   $a = 1;
} else {
   // Тут тоже комментарий
   $a = 2;
}

if (...) {
    // Комментарии
    $b = 3;
} else {
   // Комментарии
   $b = 4;
}

if (..) {
    // и еще комментарии
    $c = 5;
} else {
    $c = 6;
}

somefunction($a, $b, $c);
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239769
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше не использовать так как не всегда человек в состоянии отделить оператор от управляющей структуры.
$a=($z==true?'ога':'неа');
Нормально

$result = ($storageType=='file'?writeToFile('xyz'):writeToNull('xyz'));
Очень, очень плохо.
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239778
авторСовершенно ненормально.
береги нервы... ;)
автор Поэтому так:
не будут так делать на твоём примере - экономят время и мозги ...
по этому и существует тернарный оператор !!! ;)
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239786
авторне всегда человек в состоянии отделить оператор от управляющей структуры. ... ... Очень, очень плохо.
Код: php
1.
2.
$result = ($storageType == 'file') 
            ? writeToFile('xyz') : writeToNull('xyz');


используй форматирование кода и всё будет хорошо!!!
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239798
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тернарный оператор
Код: php
1.
2.
$result = ($storageType == 'file') 
            ? writeToFile('xyz') : writeToNull('xyz');


используй форматирование кода и всё будет хорошо!!!

Не будет, как минимум при вычислении покрытия тестами оператор считается выполнившимся не важно какая функция отработала
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239811
авторНе будет, как минимум при вычислении покрытия тестами оператор считается выполнившимся не важно какая функция отработала
да что же это такое!!! ну не нравится - не пиши!!! Зачем пропагандировать ерунду?

14229261 - глаза сломал, пока читал!!! Нужно было ещё перед ифами поставить комментарии - вообще было бы шикарно!!!
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239827
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inkelyadvkle,

Это крайне фигово читается.Это лечится. Немного LISP'а - и читаться будет превосходно
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239852
В догонку!

14229261 - можно создать такие условия, при которых ни $a ни $b ни $c не будут проинициализированы!

Тогда уж по феньшую
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$a = 0; $b = 0; $c = 0;

if (...) {
   // Комментарий по поводу
   $a = 1;
} else {
   // Тут тоже комментарий
   $a = 2;
}
................
................
somefunction($a, $b, $c);
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239921
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тернарный операторВ догонку!
можно создать такие условия, при которых ни $a ни $b ни $c не будут проинициализированы!

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

Если мы предусматриваем возможность того, что при дальнейшей разработке присвоить значение забудут, то инициализация нулями будет плохим решением, тк в функцию могут уйти совершенно левые нулевые значения. Пусть уж оно где-нибудь умрет по использованияю undefined value, чем так.
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239972
авторЕсли мы предусматриваем возможность того, что при дальнейшей разработке присвоить значение забудут, то инициализация нулями будет плохим решением, тк в функцию могут уйти совершенно левые нулевые значения. Пусть уж оно где-нибудь умрет по использованияю undefined value, чем так.
уже всё украдено до нас ;)
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
// Комментарий по поводу
$a = (...) ? 1 : 2;
// Комментарий по поводу
$b = (...) ? 3 : 4;
// Комментарий по поводу
$c = (...) ? 5 : 6;
// Комментарий по поводу
somefunction($a, $b, $c);
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38239986
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тернарный операторуже всё украдено до нас ;)
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
// Комментарий по поводу
$a = (...) ? 1 : 2;
// Комментарий по поводу
$b = (...) ? 3 : 4;
// Комментарий по поводу
$c = (...) ? 5 : 6;
// Комментарий по поводу
somefunction($a, $b, $c);



Для простых случаев - хорошо.

Но вот как тут, скажем, отладочный вывод для случая, когда $a должно быть равным двум, поставить?
...
Рейтинг: 0 / 0
Подскажите что это bla==1?2:1
    #38240034
авторДля простых случаев - хорошо.
где я сказал, что его (тернарный оператор) нужно лепить без разбора?!
offавторНо вот как тут, скажем, отладочный вывод для случая, когда $a должно быть равным двум, поставить?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
// Комментарий по поводу
$a = (...) ? 1 : 2;

// Комментарий по поводу
$b = (...) ? 3 : 4;

// Комментарий по поводу
$c = (...) ? 5 : 6;

// Комментарий по поводу
somefunction($a, $b, $c) {
     if($a === 2) {
        отладочный вывод
     }
};
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подскажите что это bla==1?2:1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]