Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Логическое выражение

Сообщения:  [1-10]   [11-12] 

 
 автор: confirm   (28.04.2012 в 01:09)   письмо автору
 
   для: kilogram   (28.04.2012 в 00:58)
 

Я же выше привел выдержку из манула об этой функции, почему в данном случае применяется строгая проверка.
Здесь запись через "попу", может поэтому дико воспринимается.
Проверяем чему равно значение и тип переменной $e (что возвращает readdir).

  Ответить  
 
 автор: kilogram   (28.04.2012 в 00:58)   письмо автору
 
   для: kilogram   (28.04.2012 в 00:44)
 

!== - данные не должны быть эквивалентны


while(false !== ($e=readdir($d)) )

Если $e не равно типу бул, значению фолс. А зачем здесь проверять на тип?
Какие элементы с какими проверяются?

  Ответить  
 
 автор: confirm   (28.04.2012 в 00:56)   письмо автору
 
   для: kilogram   (28.04.2012 в 00:44)
 

Проверку равенства === и неравенства !== еще называют строгой проверкой, так как проверяются на равенство/неравенство не только сами значения, но и их типы. Например:
<?
echo 1-'TRUE' 'FALSE';
echo 
'<br>';
echo 
1-!== false 'TRUE' 'FALSE';

В первом случае тип не проверяется и 0 как и положено вернет булево значение false, а во втором случае проверяется и тип, а 0, это не булев тип, а integer. Потому и результат во втором случае будет иной.

  Ответить  
 
 автор: kilogram   (28.04.2012 в 00:44)   письмо автору
 
   для: confirm   (28.04.2012 в 00:16)
 

while(false !== ($e=readdir($d)) )


Здесь проверка переменной $e не равна ли она за типом типу false так как 2 знака равно после восклиц. знака?

  Ответить  
 
 автор: confirm   (28.04.2012 в 00:16)   письмо автору
 
   для: kilogram   (27.04.2012 в 23:33)
 

Товарищ Киналь мне своим быстрым комментарием всю масленицу испортил )

А надо было добавить, что существует функция glob(), которая позволяет заменить весь этот бедлам вместе с сортировкой.
<?
foreach (glob("*.*",GLOB_NOSORT) as $filename) echo $filename."<br>";

  Ответить  
 
 автор: Киналь   (28.04.2012 в 00:14)   письмо автору
 
   для: confirm   (28.04.2012 в 00:05)
 

Тьфу, неверно прочитал ваш пост, прошу прощения.

  Ответить  
 
 автор: confirm   (28.04.2012 в 00:05)   письмо автору
 
   для: Киналь   (28.04.2012 в 00:02)
 

Вот именно, поэтому он и используется.

  Ответить  
 
 автор: Киналь   (28.04.2012 в 00:02)   письмо автору
 
   для: confirm   (27.04.2012 в 23:56)
 

И это немного не так)) Оператор «!==» проверяет тип, так что "0" не подойдёт.

  Ответить  
 
 автор: confirm   (27.04.2012 в 23:56)   письмо автору
 
   для: kilogram   (27.04.2012 в 23:33)
 

А так понятней будет?
<?
while (($e readdir($d)) !== false)

Здесь проверка на идентичность значений потому, что в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл (например, элемент с именем "0").

  Ответить  
 
 автор: confirm   (27.04.2012 в 23:51)   письмо автору
 
   для: Киналь   (27.04.2012 в 23:46)
 

Нет, немного не так. )

  Ответить  

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования