| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > bool is_null () |
| Автор: overmetallist 24.8.2010, 21:45 | ||||||
Так работает:
так нет:
так нет:
|
| Автор: enoff 24.8.2010, 22:16 |
| is_null() проверяет, является ли переменная типом null. вы приводите переменную к булеву типу и спрашиваете, почему она больше не null? |
| Автор: overmetallist 24.8.2010, 22:21 | ||||||
Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL. Переменная считается NULL если ей была присвоена константа NULL. ???????
ей еще не было присвоено какое-либо значение. она была удалена с помощью unset(). оказывается:
|
| Автор: enoff 24.8.2010, 22:36 | ||
в первом посте было bool $eee, потому is_null() возвращало false. |
| Автор: overmetallist 24.8.2010, 22:37 | ||||
is_null() возвращало "ничего"на станице, тобешь false, но должно было то true я же присвоил переменной пустую переменную...
|
| Автор: gta4kv 25.8.2010, 13:27 |
| var? Вы вообще понимаете в чем вопрос заключается? |
| Автор: overmetallist 25.8.2010, 13:30 |
| че var? , я же делаю согласно инструкции, присваиваю NULL, должно равняться NULL |
| Автор: gta4kv 25.8.2010, 13:32 | ||||
Что не так? |
| Автор: overmetallist 25.8.2010, 13:34 | ||
так попробуй
|
| Автор: gta4kv 25.8.2010, 13:36 |
| Какой к чертям var? Вы издеваетесь? Единственное что сделает ваш код, так это выдаст ошибку. |
| Автор: overmetallist 25.8.2010, 13:41 |
| а почему бы не var? это код пхп и поидее он должен работать, но не работает |
| Автор: gta4kv 25.8.2010, 13:42 |
| Он не должен работать. Добавлено @ 13:43 http://stackoverflow.com/questions/1206105/what-does-php-keyword-var-do |
| Автор: overmetallist 25.8.2010, 14:50 | ||
там написано It will work in PHP5, тобешь все должно работать
|
| Автор: overmetallist 25.8.2010, 15:06 | ||||
но это же должно работать, так как я присваиваю пустую переменную, в любом другом языке программирования работало бы, ну в C++ уверен
|
| Автор: bars80080 25.8.2010, 15:20 | ||
а где в этом примере с C++ используется var? |
| Автор: overmetallist 25.8.2010, 16:06 | ||||
работает коректно:
это нет
|
| Автор: bars80080 25.8.2010, 16:14 |
где в этом примере для C++ используется var? |
| Автор: gta4kv 25.8.2010, 17:17 | ||||||
Из этого примера в PHP вырисовывается такой код:
и он работает. |
| Автор: overmetallist 25.8.2010, 18:07 | ||||||
ладно так:
|
| Автор: gta4kv 25.8.2010, 18:18 | ||||
| Начнем с того, что наверное не стоит сравнивать два разных языка, не? И как понимаю для тебя основы программирование это тоже что-то новое. ты преобразуешь переменную в boolean и проверяешь null ли она, но у boolean переменной может быть только два значения true или false. Никаких null. твой пример
объявляет переменную.
это же её преобразует. |
| Автор: overmetallist 25.8.2010, 18:20 | ||||
вот:
вот, дважды преобразуя в bool при одних и тех же условиях разные результаты Добавлено через 11 минут и 19 секунд только не говорите что я не прав, проверял на хостинге и на компе, is_null отлично работает от if(..==NULL) в некоторых случаях |
| Автор: gta4kv 25.8.2010, 18:38 | ||||
Серьезно не видишь разницы между
и
? |
| Автор: overmetallist 25.8.2010, 18:46 |
| там и там если равно NULL |
| Автор: gta4kv 25.8.2010, 18:49 | ||
Цитирую
|
| Автор: overmetallist 25.8.2010, 18:50 | ||||
- но в этом случае появлется третее значение |
| Автор: gta4kv 25.8.2010, 18:51 |
| Перечитай мое сообщение еще 99999999 раз. Подумай головой, а потом еще перечитай. |
| Автор: overmetallist 25.8.2010, 18:55 | ||||
а говорю что так, потому что оно так и есть
Добавлено через 7 минут и 37 секунд кто может пояснить почему именно так происходит? |
| Автор: Ипатьев 25.8.2010, 19:04 | ||
Вообще-то оба эти выражения (и is_null(), и ==)возвращают булев результат, а никак не NULL
|
| Автор: overmetallist 25.8.2010, 19:13 | ||||
а почему тогда у меня выводит 1?
|
| Автор: gta4kv 25.8.2010, 19:22 |
| http://php.su/learnphp/datatypes/?boolean |
| Автор: Nigel 25.8.2010, 19:24 |
| overmetallist, RTFM. 2 страницы одной и той же ерунды.. уже 3 (( |
| Автор: Ипатьев 25.8.2010, 19:25 |
| это никак моим словам не противоречит. результат выполнения оператора == в данном примере - TRUE, имеет булев тип. а почему выводит 1 - потому что оператор == для данного исследования вообще не годится. Какой надо использовать вместо него - я написал выше. Хотя, честно говоря, я не понимаю, что тут исследовать - все давно разъяснено на первой странице. Надо только не путаться в операторах и типах переменных. |
| Автор: overmetallist 25.8.2010, 19:28 | ||
такой не подходит, а я его часто встречаю вот здесь google.com/codesearch , как и is_null
|
| Автор: Ипатьев 25.8.2010, 19:30 |
| Я часто встречаю молоток в ящике с инструментами. Но если мне надо склеить два листа бумаги, то он мне не подходит. Для данного исследования оператор == не подходит. Сколько бы он ни встречался в разных прочих кодах. |
| Автор: overmetallist 25.8.2010, 19:34 | ||||
выводит bool(false);
|
| Автор: Ипатьев 25.8.2010, 19:39 |
| Что же в этом удивительного? какой еще результат можно ожидать от применения оператора (bool), если единственным его предназначением является приведение переменной к булеву типу? Об этом на первой странице все и говорили. |
| Автор: overmetallist 25.8.2010, 19:45 | ||||
ну это уже на грани моего понимания
|
| Автор: Ипатьев 25.8.2010, 19:51 |
| Мне кажется, вы неспособны воспринимать, что вам пишут. я уже писал, результат работы операторов is_null() и == не нужно насильно приводить к булевому типу - он и так уже булев. поэтому первый (bool) в этих примерах не нужен. (зачем там второй - тоже загадка, но это другой вопрос) я уже писал, что оператор == для задачи, где важен тип переменной, применять нельзя. а вы все равно упорно его пишете. зачем? чтобы заполнить еще десяток страниц в этом топике? |
| Автор: gta4kv 25.8.2010, 19:52 |
| посты overmetallist все умнее и умнее становятся. |
| Автор: overmetallist 25.8.2010, 20:02 | ||||||
согласен, так будет true в обоих результатах, если убрать bool как в прошлом случае
но это мне не понятно
|
| Автор: Ипатьев 25.8.2010, 20:11 | ||
| Что именно непонятно, лучше написать словами. Потому что из кода этого не видно. в каждом примере вы пишете все больше и больше операторов, не разобравшись при этом даже с предыдущими. какая стоит задача? Узнать, имеет ли ли переменная $aaa значение NULL?
все, больше ничего не надо. ни (bool), ни ==, ни других замысловатых конструкций. |
| Автор: overmetallist 25.8.2010, 20:17 | ||||
вот в чем дело, спасибо всем, разобрался
постараюсь
|