Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36

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

23.05.2018, 13:50. Показов 956. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И снова всем привет, добрые люди. Продолжаю разбираться с php и возникла следующая задача:

Есть код, ниже приведен его кусочек.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
if (!isset($var)) echo strip_tags ($_POST['surname'])."<br>";
if (empty($_POST['surname'])) echo "<font color=gray><i>Вы не заполнили поле фамилия</i></font>"."<br>"; 
 
if (!isset($var)) echo strip_tags ($_POST['name'])."<br>";
if (empty($_POST['name'])) echo "<font color=gray><i>Вы не заполнили поле имя</i></font>"."<br>"; 
 
if (!isset($var)) echo strip_tags ($_POST['patr'])."<br>";
if (empty($_POST['patr'])) echo "<font color=gray><i>Вы не заполнили поле отчество</i></font>"."<br>"; 
 
if (!isset($var)) echo strip_tags ($_POST['sex'])."<br>";
if (empty($_POST['sex'])) echo "<font color=gray><i>Вы не заполнили поле пол</i></font>"."<br>"; 
 
?>
И вот везде мне необходимо вместо if(isset)... для получения значения из $_POST использовать тернарный оператор.

Я прочитал много статей на этот счет, везде приводятся примеры с цифрами. Я знаю, что выглядит он следующим образом: "$var = condition ? exp1 : exp2;", Но я не понимаю, что мне необходимо вписать в условие после =

Буду ну ОЧЕНЬ благодарен если кто-то сможет мне показать , как это сделать на примере хотя бы одной строки из кода.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2018, 13:50
Ответы с готовыми решениями:

тернарный оператор
Можно ли как-то лучше сделать этот пример: $i = 0; while($i++&lt;101){echo ( $i%3 == 0 )?$i.&quot;&lt;br/&gt;&quot;:FALSE; } Что можно придумать вместо...

тернарный оператор
понимаю, что вопрос совсем детский, но все таки не могу понять в чем проблема... пример: $a=1; echo...

Тернарный оператор
Изучая php наткнулся на такую вещь, как тернарный оператор. Увидел, что его запись намного проще обычной конструкции if-else. Но вопрос...

6
 Аватар для CoderHuligan
1743 / 1008 / 257
Регистрация: 30.06.2015
Сообщений: 5,107
Записей в блоге: 56
23.05.2018, 14:08
PHP
1
2
3
4
5
<?php
 
!isset($var) ? echo strip_tags ($_POST['surname'])."<br>" : empty($_POST['surname']) ? echo "<font color=gray><i>Вы не заполнили поле фамилия</i></font>"."<br>";
 
?>
Хотя логика несколько изменена.

Добавлено через 2 минуты
Вообще то тернарный оператор предназначен для подстановки ЗНАЧЕНИЙ по условию в вычислительные алгоритмы, а не для подобных случаев, как у вас.
0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
23.05.2018, 14:09  [ТС]
CoderHuligan, спасибо, но оно не работает
0
 Аватар для CoderHuligan
1743 / 1008 / 257
Регистрация: 30.06.2015
Сообщений: 5,107
Записей в блоге: 56
23.05.2018, 14:09
Поэтому мой пример может и работать, однако всё равно это не правильно, и приведено для примера.
0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
23.05.2018, 14:09  [ТС]
CoderHuligan, возможно, но мне нужно это как-то сделать в любом случае
0
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
23.05.2018, 20:43
Цитата Сообщение от LoonyFox Посмотреть сообщение
возможно, но мне нужно это как-то сделать в любом случае
к сожалению не могу знать для каких целей служит isset, но для вывода инфы о пустом идентификаторе в урл`е достаточно сделать так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
echo (empty($_POST['surname'])) 
    ? "<font color=gray><i>Вы не заполнили поле фамилия</i></font>"."<br>"
    : strip_tags ($_POST['surname'])."<br>";
    
echo (empty($_POST['name'])) 
    ? "<font color=gray><i>Вы не заполнили поле имя</i></font>"."<br>"
    : strip_tags ($_POST['name'])."<br>";
    
echo (empty($_POST['patr'])) 
    ? "<font color=gray><i>Вы не заполнили поле отчество</i></font>"."<br>"
    : strip_tags ($_POST['patr'])."<br>";
    
echo (empty($_POST['sex'])) 
    ? "<font color=gray><i>Вы не заполнили поле пол</i></font>"."<br>"
    : strip_tags ($_POST['sex'])."<br>";
в зависимости от целей вам нужно изменить логику в тернарной операции по тому же принципу, что и if - else , так как эта условная конструкция является "аналог" второй.
0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
23.05.2018, 20:52  [ТС]
Fart83, спасибо, теперь я понял)
только вот сначала должно идти "strip_tags ($_POST['...'])."<br>"" а потом уже сообщение о незаполненной форме
т.е. Условие ? true : false;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2018, 20:52
Помогаю со студенческими работами здесь

Тернарный оператор и обработка строк
Всем добра! true ? &quot;$a!&quot; : &quot;$a?&quot;; Подскажите, как поступит интерпретатор с переменными в строках: а) обработает обе строки и вернет...

Почему так работает тернарный оператор?
Всем ку! $result = true ? 0 : false ? 100 : 200; var_dump($result); Почему выводит 200, а не 0? $result = true ? 1 :...

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

Тернарный оператор
Перевести в тернарный оператор .. принцип понимаю ? : )но здесь нет ( if (n&gt;0) { printf (&quot;Число положительное - умножить...

Тернарный оператор
Как можно улучшить данную конструкцию тернарным оператором if (isLeftLetter &amp;&amp; isRightLetter) { swap(chars, leftElementIndex,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru