[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что произойдет у интерпритатора когда
Страницы: 1, 2, 3
stump
Что будет у интерпритатора когда он встретит в теле скрипта ничему не принадлежащее значение false. Например:
<?php;
FALSE

?>


Мое предположение: занесет FALSE в регистр и будет хранить пока не сборщик мусора не приберется.

Есть другое предположение: занесет FALSE в регистр и будет хранить пока скрипт не завершит свою работу.

Возможно предположения не верны. В литре не встречал каких либо заметок на эту тему. Что произойдет по вашему мнению?

_____________
Трус не играет в хокей
Hello
stump
Ничего не будет. Нет переменных - нет новых zval. Сборщику нечего собирать.

_____________
VPS от 5$, первые 2 месяца - бесплатно.
stump
Процессор то отработает несколько тактов. Что-то должно происходить.

_____________
Трус не играет в хокей
twin
Вообще то FALSE, это предопределенная константа. Так что никуда ничего никто не занесет, оно уже там.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
stump
Пока код пишется, я размышляю недостатки ситуации когда придет команда FALSE. Теоретически это должен быть пустой такт процессора во время исполнения программы.

Беспокойство вызывает тернарный оператор когда в ситуации лож нечего выполнять. Например такая:
empty( $field ) ? $field = "" : FALSE;


В случае когда $field полный список команд будет:
- пустой ли $field -> выбор когда лож -> FALSE.

Это ситуация когда надо что-то написать, а написать нечего. Спрашивать через if некрасиво.

_____________
Трус не играет в хокей
sergeiss
Цитата (stump @ 11.03.2015 - 16:17)
empty( $field ) ? $field = "" : FALSE;

Ты поверишь, если я скажу, что это "говнокод"? ;)

Не самый лучший вариант, но уж лучше вот так:
$field = empty( $field ) ? '' : $field;


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

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

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

user posted image
johniek_comp
stump
Нужно через if
в python есть для таких момент pass, она ничего не делает, просто иногда из-за концепции языка нужно написать инструкцию, а писать то нечего, пишут pass

если брать твой пример то логичнее писать null

_____________
user posted image
Hello
Цитата (stump @ 11.03.2015 - 15:17)
Теоретически это должен быть пустой такт процессора во время исполнения программы.

Цитата (stump @ 11.03.2015 - 15:17)
Спрашивать через if некрасиво.

If всегда быстрее тернарного оператора

_____________
VPS от 5$, первые 2 месяца - бесплатно.
stump
Цитата (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
Цитата (stump @ 11.03.2015 - 18:01)
Я же говорил что фраза "говнокод" это "говномысли" ламера со звездной болезнью...

Эка ж ты про себя самокритично-то...

Если тебе не нравятся ответы и ты ВСЕГДА УВЕРЕН, ЧТО ТЫ ЗАВЕДОМО ПРАВ, то объясни мне, плз: ЗАЧЕМ ты тогда спрашиваешь что-то на форуме? Ты же как раз ничего не воспринимаешь, оспариваешь любую сказанную тебе мысль.


Цитата (Hello @ 11.03.2015 - 16:35)
If всегда быстрее тернарного оператора

Позволь не согласиться smile.gif По крайней мере, если это сделать на уровне ассемблера и с целыми величинами, то тернарный оператор однозначно быстрее будет. Там то ли на 2, то ли на 3 такта процессора меньше получается.
В ПХП, возможно, не так однозначно, что можно высчитать в тактах процессора. Но тернарный оператор просто обязан быть быстрее, хотя бы немного.

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

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

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

user posted image
Hello
Цитата (sergeiss @ 11.03.2015 - 21:38)
Там то ли на 2, то ли на 3 такта процессора меньше получается.
В ПХП, возможно, не так однозначно, что можно высчитать в тактах процессора. Но тернарный оператор просто обязан быть быстрее, хотя бы немного.

Пруф?

_____________
VPS от 5$, первые 2 месяца - бесплатно.
sergeiss
Цитата (Hello @ 12.03.2015 - 10:25)
Пруф?

Пруф попробовал найти, не нашел. Я сам в ассемблере не силён smile.gif Когда написано, то понимаю. Но сам не напишу.
Там, на каком-то форуме по Си, несколько лет назад, был написан ассемблерный код для обоих случаев: тернарный оператор и 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, вёрстке. Интерактивно и качественно. За разумные деньги.

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

user posted image
Hello
Цитата (sergeiss @ 12.03.2015 - 12:32)
Имеет смысл читать всё, особо обратить внимание на абзац, начинающийся со слов "The resulting assembler code with gcc -O3 had 35 instructions."

Не имеет. Он не показал свой код с обычным if'ом.

А на PHP спокойно можно посчитать опкоды для обоих случаев. И результат будет не в пользу тернарного оператора.

_____________
VPS от 5$, первые 2 месяца - бесплатно.
sergeiss
Цитата (Hello @ 12.03.2015 - 14:32)
А на PHP спокойно можно...

Чуть выше в теме я говорил, что моё утверждение верно для ассемблера и ничего не утверждал насчет ПХП.

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

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

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

user posted image
stump
Цитата (sergeiss @ 11.03.2015 - 22:38)
Цитата (stump @ 11.03.2015 - 18:01)
Я же говорил что фраза "говнокод" это "говномысли" ламера со звездной болезнью...

Эка ж ты про себя самокритично-то...


Это я про тех кто сунул свой авратар, гавкнул "говнокод" и опять спрятал свой аватар. Ничего толкового, ничего такого что требует размышлений, ничего полезного, одно лишь слово "говнокод". - это есть нехорошо в моем понимании.

Не зря же придумали анти-паттерн. Может также можно назвать анти-стандартный код, такой что не соответствует описанию php.net, psr-50 и т.д.


Цитата (sergeiss)
Если тебе не нравятся ответы и ты ВСЕГДА УВЕРЕН, ЧТО ТЫ ЗАВЕДОМО ПРАВ, то объясни мне, плз: ЗАЧЕМ ты тогда спрашиваешь что-то на форуме? Ты же как раз ничего не воспринимаешь, оспариваешь любую сказанную тебе мысль.


Пошел размышлять...
Нет, я не заведомо прав. Просто задавая вопрос мне хочется прочитать заведомо правдивый и правильный ответ, желательно опирающийся на что либо описанное в документации разной достоверности. Еще интересно читать аргументируемые ответы где в качестве аргументов те или иные правила написания кода. Еще интересно читать аргументируемый ответ от проф разработчиков с программистким образованием которые программистами в жизни. Тогда ответы интересные и читать интересно, и можно подискутировать и разобраться в мелких деталях.

А если кто конструктор-сборщик сайтов (любители Денвера и Опенсервера и тех кто не может поднять LAMP), то ответ с нецензурными (говнокод это слово из нецензурной брани) словами некатируется ваще.

_____________
Трус не играет в хокей
Быстрый ответ:

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