VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
IF - стандартный пхп-шный оператор
IIF - это воблофункция, найди ее описание в файлах
==
каждый из них применяется в своих участках кода
например iif удобней использовать в одной строке, где не удобно разрывать строку обычным оператором
код из примера выше можно записать и по другому, т.е. с обычным оператором IF, но в этом случае код будет менее читабелен
syn
Эксперт
Join Date: Dec 2008
Location: Харьков, Украина
Награды в конкурсах:
Posts: 1,096
Версия vB: 3.8.x
Пол:
Reputation:
Professional 885
Репутация в разделе: 90
0
Quote:
Originally Posted by kerk
IIF - это воблофункция
на сколько мне известно (из мануалов):
if - условный оператор.
iif - функция языка (условный тернарный оператор).
аналогом iif в определенной степени является тернарный оператор - (условие ? тру : фолс).
iif является аналогом if else, но имеет свои особенности (их, особенности, в данном вопросе я не затрагиваю).
или я чего-то недопонял?
Syn добавил 22.05.2011 в 12:15
вот, кстати, на хабре есть интересная заметка об особенностях тернарных операторов в php => http://habrahabr.ru/blogs/php/114899/
Last edited by syn : 05-22-2011 at 01:15 PM.
Reason: Добавлено сообщение
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 7743
1
Quote:
Originally Posted by Syn
функция языка (условный тернарный оператор).
какого языка? PHP? нет там такой функции
вотпрос был задан именно про IF и IIF
файл: functions.php
строки с 40 по 54 (версия vB 3.8.5)
PHP Code:
/**
* Essentially a wrapper for the ternary operator.
*
* @deprecated Deprecated as of 3.5. Use the ternary operator.
*
* @param string Expression to be evaluated
* @param mixed Return this if the expression evaluates to true
* @param mixed Return this if the expression evaluates to false
*
* @return mixed Either the second or third parameter of this function
*/
function iif($expression, $returntrue, $returnfalse = '')
{
return ($expression ? $returntrue : $returnfalse);
}
функция устарела, как написано в комментарии, но активно используется в линейке 3.8.х (про 4 незнаю)
и таки да, в возврате используется тернарный оператор, но в функции IIF второй аргумент не обязательный, тогда как в терн. операторе обязательно нужно ставить пустое знаение после двоеточия
syn
Эксперт
Join Date: Dec 2008
Location: Харьков, Украина
Награды в конкурсах:
Posts: 1,096
Версия vB: 3.8.x
Пол:
Reputation:
Professional 885
Репутация в разделе: 90
0
Такс, или я чего-то не допонял или хз.
Никак не могу найти, но точно помню [из хз какого источника], что iif является ну как бы недокументированной функцией пыха. Типа оно есть, работает, но не включено в офиуиальную доку. С того самого момента я пытаюсь найти хоть какую-нить инфу по этому вопросу [пока безрезультатно].
То, что это оказалась воблофункция, меня даже удивило. В этом случае мой вопрос полностью снимается.
сенкс
Syn добавил 22.05.2011 в 23:55 В таком случае вопрос меняется.
Что предпочтительнее по скорости? if else or obj ? true : false [при прочих равных]
Last edited by syn : 05-23-2011 at 12:58 AM.
Reason: Добавлено сообщение
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 7743
0
Quote:
Originally Posted by Syn
iif является ну как бы недокументированной функцией пыха. Типа оно есть, работает, но не включено в офиуиальную доку.
нет такой функции в PHP, и на сколько мне известно, никогда небыло
закоментируй воблофункцию и попробуй открой любую страницу форума
Quote:
Fatal error: Call to undefined function iif()
Quote:
Originally Posted by Syn
Что предпочтительнее по скорости?
да тут не в скорости даже дело, а в рациональности использования
если код состоит из множества IF/ELSE, то выражение, записанное с использованием IIF, будет не читаемое
если выражение ограничивается только одним IF или IF/ELSE, НО, его можно записать в одну строку, я использую IIF или тернарный оператор $var = $expr ? $true : $false (опять же с оговоркой, где используется выражение)
syn
Эксперт
Join Date: Dec 2008
Location: Харьков, Украина
Награды в конкурсах:
Posts: 1,096
Версия vB: 3.8.x
Пол:
Reputation:
Professional 885
Репутация в разделе: 90
0
kerk, по поводу фейковости iif in a php, доказывать уже ненужно. Все факты в пользу данного утверждения. 99,999 я что-то напутал и жестоко наколол сам себя. Хорошо, хоть решил спросить, прежде, чем использовать.
В данный момент меня уже более не интересуют вопросы связанные с iif [фтопку их].
Сейчас меня интересуют исключительно тернарники.
Смысл в том, что мне удобнее использовать тернарники, чем иф элс. Но гложит вопрос, не теряю ли я в производительности?