PHP - Гуру. Разъясните, please.
1594 повідомлення
#15 років тому
Плз, объясните, когда надо использовать те или иные комбинации- =
- ==
- ===
- !=
- !==
В условных конструкциях. Буду очень благодарен, а то сейчас приходится делать только проверяя на опыте.. А хочется знать точно.
2989 повідомлень
#15 років тому
Цитата ("Anexroid"):
= присвоение значения
== сравнение по значению
=== точное сравнение по значению и типу
!= сравнение по неравно по значению
!== точное сравнение по неравно по значению и типу
1594 повідомлення
2989 повідомлень
#15 років тому
Цитата ("Anexroid"):В условных конструкциях?
Нет. Просто = в условных конструкциях не используется.
Если Вы имеете ввиду выражение типа
if ($a = my_function()) {...}
то это не условие.
Сначала переменной $a будет присвоено значение, возвращенное функцией my_function()), а потом значение $a будет проверено на 0, null, пустое значение и логическое false.
2989 повідомлень
#15 років тому
Вы дважды присваеваете $a значение 123 и проверяете на не пустое значение.
168 повідомлень
#15 років тому
Цитата ("Anexroid"):Ясно, всё, понял)) Спасибо!
Лучше используйте < и > например, т.к. методы выше, работают медленнее. Хотя, если вы новичок, и пишите пока, чтобы просто работало. То можно и так.
1594 повідомлення
#15 років тому
Цитата ("snoop15"):Лучше используйте < и >
Что то не понял. То есть вместо
$a = 123;
if($a == 123)
{
...
}
лучше писать
$a = 123;
if((not($a < 123)) and (not($a>123)))
{
...
}
420 повідомлень
326 повідомлень
#15 років тому
Цитата ("snoop15"):Лучше используйте < и > например, т.к. методы выше, работают медленнее.
Бред.
168 повідомлень
#15 років тому
Цитата ("oren"):Цитата ("snoop15"):Лучше используйте < и > например, т.к. методы выше, работают медленнее.
Бред.
Не бред. Если оптимизировать код то лучше < и >.
21 повідомлення
#15 років тому
Цитата ("snoop15"):Цитата ("Anexroid"):полнейший бред.Ясно, всё, понял)) Спасибо!
Лучше используйте < и > например, т.к. методы выше, работают медленнее. Хотя, если вы новичок, и пишите пока, чтобы просто работало. То можно и так.
168 повідомлень
#15 років тому
Цитата ("Am1GO"):Цитата ("snoop15"):Цитата ("Anexroid"):полнейший бред.Ясно, всё, понял)) Спасибо!
Лучше используйте < и > например, т.к. методы выше, работают медленнее. Хотя, если вы новичок, и пишите пока, чтобы просто работало. То можно и так.
Если бред, на 100% уверены?
Почитайте посты разные на форумах и т.д.
Гугл в помощь.
326 повідомлень
#15 років тому
Цитата ("snoop15"):Если бред, на 100% уверены?
Почитайте посты разные на форумах и т.д.
Гугл в помощь.
Давайте-ка конкретнее.
Вы утверждаете, что кострукция
$a==$b
будет работать медленне, чем
!($a<$b) && !($a>$b)? Правильно я Вас понял?
Так вот, факт: на моей локальной машине вторая конструкция работает медленнее. И хоть весь интерент будет завален противоположными публикациями, я ЗНАЮ (не верю, не думаю, не предполагаю, а именно знаю), что первая конструкция работает быстрее на моей локальной машине. И на сервере, где мой сайт.
Если Вы имели ввиду что-то другое, так напишите конкретнее. Ваше сообщение путает новичков.
А в сочетании с неграмотным написанием Ваших постов, я предполагаю что возможен и такой вариант: Вы что-то где-то прочитали и не так поняли.
168 повідомлень
#15 років тому
Цитата ("oren"):Цитата ("snoop15"):Если бред, на 100% уверены?
Почитайте посты разные на форумах и т.д.
Гугл в помощь.
Давайте-ка конкретнее.
Вы утверждаете, что кострукция$a==$b
будет работать медленне, чем!($a<$b) && !($a>$b)? Правильно я Вас понял?
Так вот, факт: на моей локальной машине вторая конструкция работает медленнее. И хоть весь интерент будет завален противоположными публикациями, я ЗНАЮ (не верю, не думаю, не предполагаю, а именно знаю), что первая конструкция работает быстрее на моей локальной машине. И на сервере, где мой сайт.
Если Вы имели ввиду что-то другое, так напишите конкретнее. Ваше сообщение путает новичков.
А в сочетании с неграмотным написанием Ваших постов, я предполагаю что возможен и такой вариант: Вы что-то где-то прочитали и не так поняли.
Нет, я имею ввиду, что не в этом примере, а вообще.
То есть
if ($a < 1) {
...
}
чем
if ($a != 1 ) {
...
}
205 повідомлень
#15 років тому
Цитата ("Anexroid"):$a = 123;
if($a == 123)
{
...
}
для проверки что переменная $a равна числу, строке 123
для проверки что $a равно только числу можно изменить этот код 2мя способами
1)$a = 123;if($a === 123) - сравнение по значению и типу
2)$a = 123;if((int)$a == 123) - приводим переменную $a к численному значению (этот способ является более плохим, и в неумелых руках может служить источником бага)
посилання - Описание языковых конструкций
посилання - Таблицы отображающие как происходит работа с типами при сравнении
Цитата ("snoop15"):
Цитата ("Anexroid"):Ясно, всё, понял)) Спасибо!
Лучше используйте < и > например, т.к. методы выше, работают медленнее. Хотя, если вы новичок, и пишите пока, чтобы просто работало. То можно и так.
уважаемый не учите человека писать говнокод

Цитата ("snoop15"):
Если бред, на 100% уверены?
Почитайте посты разные на форумах и т.д.
Гугл в помощь.
давайте ссылаться на мануал или исходный код php, где бенчмарки (хотя имхо чтобы померить такое придется хорошо подумать как составить тест)?
1594 повідомлення
#15 років тому
Ладно, с условиям понял, спасибо.Ещё такой вопрос. Как будет правильнее, или, если точнее, более предпочтительнее?
$a = intval($_GET);
или
$a = (int) $_GET;
?