Что будет у интерпритатора когда он встретит в теле скрипта ничему не принадлежащее значение false. Например:
<?php;
FALSE
?>
Мое предположение: занесет FALSE в регистр и будет хранить пока не сборщик мусора не приберется.
Есть другое предположение: занесет FALSE в регистр и будет хранить пока скрипт не завершит свою работу.
Возможно предположения не верны. В литре не встречал каких либо заметок на эту тему. Что произойдет по вашему мнению?
_____________
Трус не играет в хокей
stumpНичего не будет. Нет переменных - нет новых zval. Сборщику нечего собирать.
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
Процессор то отработает несколько тактов. Что-то должно происходить.
_____________
Трус не играет в хокей
Вообще то FALSE, это предопределенная константа. Так что никуда ничего никто не занесет, оно уже там.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Пока код пишется, я размышляю недостатки ситуации когда придет команда FALSE. Теоретически это должен быть пустой такт процессора во время исполнения программы.
Беспокойство вызывает тернарный оператор когда в ситуации лож нечего выполнять. Например такая:
empty( $field ) ? $field = "" : FALSE;
В случае когда $field полный список команд будет:
- пустой ли $field -> выбор когда лож -> FALSE.
Это ситуация когда надо что-то написать, а написать нечего. Спрашивать через if некрасиво.
_____________
Трус не играет в хокей
sergeiss
11.03.2015 - 16:29
Цитата (stump @ 11.03.2015 - 16:17) |
empty( $field ) ? $field = "" : FALSE; |
Ты поверишь, если я скажу, что это "говнокод"? ;)
Не самый лучший вариант, но уж лучше вот так:
$field = empty( $field ) ? '' : $field;
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
johniek_comp
11.03.2015 - 16:35
stumpНужно через if
в python есть для таких момент pass, она ничего не делает, просто иногда из-за концепции языка нужно написать инструкцию, а писать то нечего, пишут pass
если брать твой пример то логичнее писать null
_____________
Цитата (stump @ 11.03.2015 - 15:17) |
Теоретически это должен быть пустой такт процессора во время исполнения программы. |
Цитата (stump @ 11.03.2015 - 15:17) |
Спрашивать через if некрасиво. |
If всегда быстрее тернарного оператора
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
Цитата (sergeiss @ 11.03.2015 - 16:29) |
Цитата (stump @ 11.03.2015 - 16:17) | empty( $field ) ? $field = "" : FALSE; |
Ты поверишь, если я скажу, что это "говнокод"? ;) Не самый лучший вариант, но уж лучше вот так: $field = empty( $field ) ? '' : $field; |
Не ну я могу выругаться назвав "говномылсями", но если так
$field = empty( $field ) ? '' : $field;
, то я усомнюсь в эффективности кода
Цитата (stump @ 11.03.2015 - 16:17) |
empty( $field ) ? $field = "" : FALSE; |
Вобщем промолчу в этот раз! Я же говорил что фраза "говнокод" это "говномысли" ламера со звездной болезнью...
Хотя подсмотрев у volter9 ссылку
http://govnokod.ru/ я посмеялся от души.
Hello прав в
Цитата (Hello) |
stump Ничего не будет. Нет переменных - нет новых zval. Сборщику нечего собирать. |
иногда же можно написать:
function foo()
{
return FALSE;
}
foo();
И ничего не происходит. Никакого мусора, никакого сложения, ничего подобного нет.
UPD: уничтожиться все после завершения работы скрипта.
_____________
Трус не играет в хокей
sergeiss
11.03.2015 - 22:38
Цитата (stump @ 11.03.2015 - 18:01) |
Я же говорил что фраза "говнокод" это "говномысли" ламера со звездной болезнью... |
Эка ж ты про себя самокритично-то...
Если тебе не нравятся ответы и ты ВСЕГДА УВЕРЕН, ЧТО ТЫ ЗАВЕДОМО ПРАВ, то объясни мне, плз: ЗАЧЕМ ты тогда спрашиваешь что-то на форуме? Ты же как раз ничего не воспринимаешь, оспариваешь любую сказанную тебе мысль.
Цитата (Hello @ 11.03.2015 - 16:35) |
If всегда быстрее тернарного оператора |
Позволь не согласиться
По крайней мере, если это сделать на уровне ассемблера и с целыми величинами, то тернарный оператор однозначно быстрее будет. Там то ли на 2, то ли на 3 такта процессора меньше получается.
В ПХП, возможно, не так однозначно, что можно высчитать в тактах процессора. Но тернарный оператор просто обязан быть быстрее, хотя бы немного.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss
12.03.2015 - 13:32
Цитата (Hello @ 12.03.2015 - 10:25) |
Пруф? |
Пруф попробовал найти, не нашел. Я сам в ассемблере не силён
Когда написано, то понимаю. Но сам не напишу.
Там, на каком-то форуме по Си, несколько лет назад, был написан ассемблерный код для обоих случаев: тернарный оператор и if. И как раз там было четко показано, что тернарный оператор требует на пару тактов меньше.
UPD. Вот нашел, на сходную тему
http://stackoverflow.com/questions/4192225...n-of-prettinessИмеет смысл читать всё, особо обратить внимание на абзац, начинающийся со слов "The resulting assembler code with gcc -O3 had 35 instructions."
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 12.03.2015 - 12:32) |
Имеет смысл читать всё, особо обратить внимание на абзац, начинающийся со слов "The resulting assembler code with gcc -O3 had 35 instructions." |
Не имеет. Он не показал свой код с обычным if'ом.
А на PHP спокойно можно посчитать опкоды для обоих случаев. И результат будет не в пользу тернарного оператора.
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
sergeiss
12.03.2015 - 14:54
Цитата (Hello @ 12.03.2015 - 14:32) |
А на PHP спокойно можно... |
Чуть выше в теме я говорил, что моё утверждение верно для ассемблера и ничего не утверждал насчет ПХП.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 11.03.2015 - 22:38) |
Цитата (stump @ 11.03.2015 - 18:01) | Я же говорил что фраза "говнокод" это "говномысли" ламера со звездной болезнью... |
Эка ж ты про себя самокритично-то...
|
Это я про тех кто сунул свой авратар, гавкнул "говнокод" и опять спрятал свой аватар. Ничего толкового, ничего такого что требует размышлений, ничего полезного, одно лишь слово "говнокод". - это есть нехорошо в моем понимании.
Не зря же придумали анти-паттерн. Может также можно назвать анти-стандартный код, такой что не соответствует описанию php.net, psr-50 и т.д.
Цитата (sergeiss) |
Если тебе не нравятся ответы и ты ВСЕГДА УВЕРЕН, ЧТО ТЫ ЗАВЕДОМО ПРАВ, то объясни мне, плз: ЗАЧЕМ ты тогда спрашиваешь что-то на форуме? Ты же как раз ничего не воспринимаешь, оспариваешь любую сказанную тебе мысль. |
Пошел размышлять...
Нет, я не заведомо прав. Просто задавая вопрос мне хочется прочитать заведомо правдивый и правильный ответ, желательно опирающийся на что либо описанное в документации разной достоверности. Еще интересно читать аргументируемые ответы где в качестве аргументов те или иные правила написания кода. Еще интересно читать аргументируемый ответ от проф разработчиков с программистким образованием которые программистами в жизни. Тогда ответы интересные и читать интересно, и можно подискутировать и разобраться в мелких деталях.
А если кто конструктор-сборщик сайтов (любители Денвера и Опенсервера и тех кто не может поднять LAMP), то ответ с нецензурными (говнокод это слово из нецензурной брани) словами некатируется ваще.
_____________
Трус не играет в хокей