[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Краткая запись if-else
Dno
Здравствуйте уважаемые Гуру!
Подскажите пожалуйста, как я могу сократить этот код? Процедурным стилем соответственно.

<?
if($publication['img']){
if($publication['description'])
echo "<h3 style='1'/></h3>";
else
echo "<h3 style='2'/></h3>";
}
?>


В голову пришло такое решение, вроде работает, но не совсем так как надо.

<? echo $publication['img'] = ($publication['description']) ? "<h3 style='1'/></h3>" : "<h3 style='2'/></h3>"; ?>


Во втором коде, картинка подставляется в любом случае, хоть есть на нее путь в базе хоть и нету. Почему так получается я понимаю, а вот как правильно сократить код не совсем. Покажите как правильно сократить что-бы я понял этот момент и синтаксис.

Спасибо.
sergeiss
Цитата (Dno @ 3.11.2014 - 00:34)
<? echo $publication['img'] = ($publication['description']) ? "<h3 style='1'/></h3>" : "<h3 style='2'/></h3>"; ?>

Здесь у тебя совсем другая логика, не как в первом if-else. Плюс к этому, тебе нужно использовать empty() для анализа содержимого переменных.
Тебе так нужно, я думаю:
echo empty( $publication['img'] ) ? '' : ( !empty($publication['description']) ? "<h3 style='1'/></h3>" : "<h3 style='2'/></h3>"); 


PS. Словестная расшифровка: если $publication['img'] пусто, то вывести пустую строку, иначе же, если не пусто $publication['description'], то вывести одну (определенную) строку, иначе - другую.
И обрати внимание, что я добавил восклицательный знак перед empty. Сначала, в первом ответе, просто забыл его написать.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Dno
sergeiss, Благодарю. Работает как надо. Вот тебе огромнейшее спасибо, за этот пример, это большой плюс для меня, важен был синтаксис правописания этого кода и логика.

Впервые зарегистрировался на форуме по php. Наткнулся на этот по поиску в гугле, оперативненько тут, очень радует.
sergeiss
Цитата (Dno @ 3.11.2014 - 00:49)
Наткнулся на этот по поиску в гугле, оперативненько тут, очень радует.

Вэлкам smile.gif

У нас тут всё очень просто: если человек действительно сам что-то делает, но у него не получается, то завсегда помогут. А халявщикам "от ворот поворот".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vuler
Флуд:
Да форум хорош.
inpost
Dno
<? echo $publication['img'] = ($publication['description']) ? "<h3 style='1'/></h3>" : "<h3 style='2'/></h3>"; ?>

"echo" - вывести переменную.
"$publication['img'] = " - создать переменную.

_______________________

Если тебе не надо создавать переменную, а всего лишь выводить текст, то пиши:
echo ($publication['description'] ? "<h3 style='1'/></h3>" : "<h3 style='2'/></h3>");


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Dno
inpost, Спасибо за советы, буду изучать эти моменты!
chee
Если вы используете php как нативны шаблонизатор то рекомендую делать так

<?php if (isset($publication['img'], $publication['description'])): ?>
<h3 style='1'/></h3>
<?php else:?>
<h3 style='2'/></h3>
<?php endif;?>


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
killer8080
На месте ТС я бы задумался: а нужно ли такое сокращение? Экономии никакой нет, а читабельность кода однозначно ухудшилась.
Dno
killer8080, Вы о сокращении о котором я написал в первом сообщении? Если честно то задумывался об этом, но данное сокращение нужно было чтобы набить руку. Чтобы узнать синтаксис такой писанины.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.