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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Проверка существования массива
 
 автор: Владимир55   (22.05.2008 в 18:59)   письмо автору
 
 

В некоторых случаях, например перед сортировкой массива, надо убедиться в его существовании.

В примерах на Форуме я вижу такое решение:

$array = array(); 
if(isset($array)) echo("Существует.");


Но ведь если массив существует, то он имеет, как минимум, один элемент. Стало быть, проверить существование массива можно и так:

$array = array(); 
if(count($array)) echo("Существует.");


Между этими способами есть какая-то разница?

   
 
 автор: cheops   (22.05.2008 в 19:14)   письмо автору
 
   для: Владимир55   (22.05.2008 в 18:59)
 

Конструкция isset() проверяет существование переменной и предпочтительнее count(), так как последняя может выдать замечание Notice, если переменной с именем $array не обнаружится. Тут существует другая проблема, $array может оказаться не массивом, а строкой или числом и и попытка использоваться его как массив вызовет предупреждение, поэтому перед всеми операциями с массивами (особенно, если они формируются далеко от место использования), лучше проверять их при помощи фукнции is_array() - эта функция возвращает TRUE, если ей передан массив и FALSE в противном случае.

Массив может вообще не содержать элементов (вы кстати, как раз этот случай и привели :), и count($array) вернет FALSE, is_array() в этом случае вернёт TRUE.
<?php
  $array 
= array();  
  if(
is_array($array)) echo("Существует."); // TRUE
?>

   
Rambler's Top100
вверх

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