Реклама на сайте Advertise with us

Люблю блин пхп...

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Криптопохуист

С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 28/03/13 в 22:06       Ответить с цитатойцитата 

Код: [развернуть]


Ответ:
Код: [развернуть]


PHP 5.3.19 (cli)

Песдец, протрахался два часа...

2
 

Z

С нами с 15.05.05
Сообщения: 55188
Рейтинг: 7770


Передовик Master-X (16.10.2007) Передовик Master-X (16.12.2010) Передовик Master-X (01.02.2015) Передовик Master-X (16.05.2015) Передовик Master-X (01.06.2015) Ветеран трепа Master-X (16.06.2015)
Ссылка на сообщениеДобавлено: 28/03/13 в 22:10       Ответить с цитатойцитата 

Pentarh писал:
PHP 5.3.x

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

P.S. я не прогер

andreich дарит вам акцию до 1 000р
КАТАЛОГ ПАРТНЕРОК | Бурж Гембла – тут! | RU Датинг на подписках

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 28/03/13 в 22:13       Ответить с цитатойцитата 

Pentarh писал:
Песдец, протрахался два часа...

Всё правильно: слева ноль, выражение справа кастится в целое. Если ниписать echo 0 === 'sell'?1:0;, то кастинига не будет, как и двухчасового секса. icon_smile.gif

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 28/03/13 в 22:21       Ответить с цитатойцитата 

Не совсем очевидно. В джаваскрипте, например, справа будет 1, получается
0 == 1 -> false -> 0

Помоему такой вариант и на пхп должен давать 0 с приведением или без!
Проверил, echo 'sell'?1:0; -> 1 icon_eek.gif

PHP Version 5.3.3 (Видимо ТС тоже в PHP дизайнере проверял!)

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 28/03/13 в 22:39       Ответить с цитатойцитата 

S_Flash писал:
В джаваскрипте, например, справа будет 1

Нет, в js справа будет NaN ибо в операторе == операнды кастятся в целое: 0=='sell' <=> 0==Number('sell').

-1
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 28/03/13 в 22:45       Ответить с цитатойцитата 

Yacc: фишка с === равно шикарный тролинг php, ни в одной книжке в СНГ нет описания специфики ==

-2
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 28/03/13 в 22:48       Ответить с цитатойцитата 

Pentarh писал:
echo 0 == 'sell'?1:0;


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


andreich писал:
интересно былобы узнать мнение прогера, часть скриптов нихрена не хочет заводится, это кривые руки прогеров, или всетаки там, реально маштабные изменения

В основном руки. Ну не было там таких глобальных изменений. А уж по сравнению с тем же питоном или руби - пхп вообще эталон совместимости по версиям icon_lol.gif

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

5
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 28/03/13 в 22:50       Ответить с цитатойцитата 

Дартаньян: Опять ты хуйню несёшь.

http://php.net/manual/en/language.operators.comparison.php

If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically. These rules also apply to the switch statement. The type conversion does not take place when the comparison is === or !== as this involves comparing the type as well as the value.

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 28/03/13 в 22:56       Ответить с цитатойцитата 

Yacc: Дартаньян говорил про русский вариант, так что: http://www.php.net/manual/ru/language.operators.comparison.php smail101.gif

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 28/03/13 в 23:02       Ответить с цитатойцитата 

Yacc писал:
Нет, в js справа будет NaN ибо в операторе == операнды кастятся в целое: 0=='sell' <=> 0==Number('sell').

Нет справа будет именно 1
Долго обьяснять не надо. Просто попробуй:
Код:
<script>
alert ('sell'?1:0);
</script>


Дартаньян: === самое обычное сравнение без приведения типов. (false == 0) - true, так как false приводится к целочисленному (false === 0) - false, так как и так всё понятно.

-1
 
+ +
WP-Master

С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123


Передовик Master-X (16.02.2015) Передовик Master-X (01.03.2015)
Ссылка на сообщениеДобавлено: 28/03/13 в 23:14       Ответить с цитатойцитата 

Yacc: trollface.png это ты хуйню городишь, сидишь дома дрочишь, питерские программисты с 5к $ такого не знавали.

-4
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 28/03/13 в 23:16       Ответить с цитатойцитата 

S_Flash писал:
Нет справа будет именно 1
Долго обьяснять не надо. Просто попробуй:

А я говорю будет NaN, просто почитай спецификацию: http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3

То что ты показываешь будет кастится в Boolean:
'sell'?1:0 <=> !true==!'sell'?1:0 <=> !true==!Boolean('sell')?1:0

0
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 30/03/13 в 11:48       Ответить с цитатойцитата 

Yacc писал:
А я говорю будет NaN, просто почитай спецификацию: http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3

легко проверить
Код:
<script>
if (('sell'?1:0) === true) alert('Boolean')
   else if (('sell'?1:0) === 1) alert ('is a 1');
</script>

Скриншот результата вставить или в этот раз удосужишься проверить?
Только не вставляй гифку с вертящимя хуем! smail101.gif

-1
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 30/03/13 в 12:15       Ответить с цитатойцитата 

S_Flash писал:
Только не вставляй гифку с вертящимя хуем!

Не буду. Тебе даже это не поможет.

-3
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 30/03/13 в 13:15       Ответить с цитатойцитата 

Обезьянки просыпаются. Даже сюда не поленились зайти, пост минусануть. Ведь Як это так возбуждающе, а минусовать ему посты это вообще лучше чем ебёшь. Сегодня вы не раз кончите, доставайте писюны, готовьтесь. smail101.gif

0
 



С нами с 04.11.02
Сообщения: 51
Рейтинг: 70

Ссылка на сообщениеДобавлено: 30/03/13 в 16:12       Ответить с цитатойцитата 

S_Flash: alert ('sell'?1:0); даёт единицу, т.к. в этом случае 'sell' преобразуется к Boolean true http://es5.javascript.ru/x11.html#x11.12, если же поставить сравнение: булеан_или_число == 'sell'?1:0 , то оба операнда будут преобразованы к числу http://es5.javascript.ru/x11.html#x11.9.3, а Number('sell') в яваскрипт - это NaN, который не равен ни чему другому, ни даже себе.
Код:
<script>
alert (Number('sell'));
</script>

можешь проверить, кстати:
Код:
<script>
alert (true=='sell'?1:0);
</script>

(даёт ноль)
icon_wink.gif

2
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 30/03/13 в 16:29       Ответить с цитатойцитата 

А смысл ему объяснять? Раз сказал, два сказал, ссылку на стандарт дал. И ведь спорит же ещё.

0
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 30/03/13 в 16:39       Ответить с цитатойцитата 

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



В основном руки. Ну не было там таких глобальных изменений. А уж по сравнению с тем же питоном или руби - пхп вообще эталон совместимости по версиям icon_lol.gif


Это финальная конструкция в чужом софте! Там что то вроде

if ($var == 'sell') { ... }
if ($var == 'buy') { ... }

В процессе выполнения скрипта $var мог принимать значение типа int(0) и я нихуя не понимал какого Х в таком случае оба условия выполняются, что приводит к просто эпической куче глюков.

1
 



С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506

Ссылка на сообщениеДобавлено: 30/03/13 в 16:48       Ответить с цитатойцитата 

Pentarh писал:
Это финальная конструкция в чужом софте! Там что то вроде

if ($var == 'sell') { ... }
if ($var == 'buy') { ... }

В процессе выполнения скрипта $var мог принимать значение типа int(0) и я нихуя не понимал какого Х в таком случае оба условия выполняются, что приводит к просто эпической куче глюков.

хех жестко...

1
 



С нами с 04.11.02
Сообщения: 51
Рейтинг: 70

Ссылка на сообщениеДобавлено: 30/03/13 в 17:11       Ответить с цитатойцитата 

Pentarh: поэтому и надо в таких случаях ставить '==='
У меня был случай (когда я тоже не знал про тройное равно):
if ($a == $b) { ... }, где $a могло принимать вообще любое значение, а $b было шестнадцатеричным хэшем типа 'd60a2f31'.
так вот помимо твоего случая, когда $a = int(0), а строка из $b кастилась в 0, случалось, например, что $a = int(4), $b = '4db37a0d', и условие выполнялось! оказалось, что (int)'4db37a0d' это 4!!!
после этого всегда, когда пишу '==' в коде, 10 раз подумаю, а не нужно ли здесь поставить '==='?

0
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 30/03/13 в 18:01       Ответить с цитатойцитата 

Вот и я говорю - ебучий тайпкаст smail101.gif

-1
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 30/03/13 в 18:41       Ответить с цитатойцитата 

Rolan писал:
alert ('sell'?1:0); даёт единицу, т.к. в этом случае 'sell' преобразуется к Boolean true http://es5.javascript.ru/x11.html#x11.12, если же поставить сравнение: булеан_или_число == 'sell'?1:0 , то оба операнда будут преобразованы к числу http://es5.javascript.ru/x11.html#x11.9.3, а Number('sell') в яваскрипт - это NaN, который не равен ни чему другому, ни даже себе.


Я помоему использовал === в сравнении if (('sell'?1:0) === 1) alert ('is a 1'); это не говорит разве о том, что сравнение произвордится без приведения типов в целочисленному!?

Yacc писал:
А смысл ему объяснять? Раз сказал, два сказал, ссылку на стандарт дал. И ведь спорит же ещё.

Мало ли что ты сказал! Спецификация для JavaScript это все равно, что как указатели краской на заборе. Всё-равно все решают микрософт и гугл.
Код:

<script>
alert (typeof ('sell'?1:0));
</script>

Скриншот не буду прикреплять! icon_wink.gif

1
 



С нами с 04.11.02
Сообщения: 51
Рейтинг: 70

Ссылка на сообщениеДобавлено: 30/03/13 в 19:26       Ответить с цитатойцитата 

S_Flash писал:
Я помоему использовал === в сравнении if (('sell'?1:0) === 1) alert ('is a 1'); это не говорит разве о том, что сравнение произвордится без приведения типов в целочисленному!?
Да. Но мы о разных условиях - ты говоришь о преобразовании во внешнем условии if (условие1) === 1, тут как раз вопросов не возникает. А я (и Yacc тоже) говорю о внутреннем условии - условие2?1:0. Так вот в этой части происходит преобразование 'sell' к Boolean.

1
 



С нами с 04.11.02
Сообщения: 51
Рейтинг: 70

Ссылка на сообщениеДобавлено: 30/03/13 в 19:30       Ответить с цитатойцитата 

S_Flash: Ааа, всё, я понял!!! Ты неправильно прочитал/понял код в первом посте! Ты его понял так: echo 0 == ('sell'?1:0); А на самом деле так: echo (0 == 'sell')?1:0; отсюда непонимание права-лева. Поставь мысленно скобки и перечитай весь топик. icon_wink.gif

1
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 30/03/13 в 20:27       Ответить с цитатойцитата 

S_Flash писал:
Скриншот не буду прикреплять!

Ладно ткну тебя ещё раз, раз ты такой упёртый.

Yacc писал:
echo 0 === 'sell'?1:0;

S_Flash писал:
В джаваскрипте, например, справа будет 1, получается
0 == 1 -> false -> 0

Я выделил жирным твоё "справа". То есть здесь ты понимаешь, что "справа" это 'sell' в выражении 0=='sell'. Я пишу:

Yacc писал:
Нет, в js справа будет NaN ибо в операторе == операнды кастятся в целое: 0=='sell' <=> 0==Number('sell').

Обрати внимание о каком выражении идёт речь. Дальше ты заменяешь это выражение другим и начинаешь тупить:

S_Flash писал:
Нет справа будет именно 1
Долго обьяснять не надо. Просто попробуй:
Код:
<script>
alert ('sell'?1:0);
</script>

Вот где тут справа то, что будет равно 1? Сразу заметив ошибку я пишу:

Yacc писал:
То что ты показываешь будет кастится в Boolean:
'sell'?1:0 <=> !true==!'sell'?1:0 <=> !true==!Boolean('sell')?1:0

Вроде всё понятно объяснил (кто не понял?), ссылку дал, но тебе похуй на стандарты и ты продолжаешь тупить. Зачем?

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »