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

Форум PHP

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

 

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

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

тема: Проверка существования массива

Сообщения:  [1-2] 

 
 автор: 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
?>

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

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

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

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


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

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


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

   

Сообщения:  [1-2] 

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

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