Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 сложной, переменной, будь то 
массив, объект или простая переменная. Как уже говорилось, приведенная функция 
исключительно полезна при отладке сценариев (которая в PHP пока еще не особенно 

развита). 
В PHP версии 4 для аналогичных целей существуют две стандартных функ- 
ции — print_r() и var_dump(), но листинг, который они выводят, довольно 
неудобен для восприятия человеком. 
Листинг 11.16. Функция Dump() 
// Вспомогательная функция, делающая всю "грязную" работу 
function TextDump(&$Var,$Level=0) 
{ if(is_array($Var)) $Type="Array[".count($Var)."]"; 
else if(is_object($Var)) $Type="Object"; 
else $Type=""; 
if($Type) { 
echo "$Type\n"; 
for(Reset($Var),$Level++; list($k,$v)=each($Var);) { 
if(is_array($v) && $k==="GLOBALS") continue; 

Глава 11. Функции и области видимости 201 
for($i=0; $i<$Level*3; $i++) echo " "; 
echo "".HtmlSpecialChars($k)." => ", TextDump($v,$Level); 
} 
} 
else echo '"',HtmlSpecialChars($Var),'"'."\n"; 
} 
// Основная функция 
function Dump(&$Var) 
{ // Подфункция, выводящая практически окончательный результат 
if((is_array($Var)||is_object($Var)) && count($Var)) 
echo "
\n",TextDump($Var),"
\n"; else echo "",TextDump($Var),"\n"; } В реальной жизни следует использовать функцию Dump(). Функция TextDump() (которая, по правде говоря, и делает всю работу) использует только одну неизвестную нам еще функцию — HtmlSpecialChars(), заменяющую в строке символы типа <, > или " на их HTML-эквиваленты (соответственно, <, > и "). Мы при- менили дополнительную функцию для того, чтобы вывести сам результат, а главная функция занимается только форматированием этого результата (вставка его в тэги
 или  в зависимости от размера вывода). 
Несколько советов 
по использованию функций 
Хочется напоследок сказать еще несколько слов о функциях. 
Первое — не допускайте, чтобы ваши функции разрастались до гигантских размеров. 

Дробите их на маленькие, по возможности независимые, части, желательно полезные 

и сами по себе. Это повысит "читабельность", устойчивость и переносимость ваших 

программ. В идеале каждая функция не должна занимать больше 20—30 строк, воз- 
можно, за редким исключением. Этот совет применим вообще ко всем языкам про- 
граммирования, а не только к PHP. 
Второе: как известно, вызов функции тоже отнимает какое-то время, поэтому 
распро- 
странено мнение, что чем меньше функций, тем быстрее работает программа. Оно в 
корне неверно: не стоит обращать внимания на цену вызова функции, пока она сама 

об этом не заявит. В конце концов, объединить несколько функций в одну всегда 
на 
порядок проще, чем разбить одну функцию на несколько. Помните об этом. 
Наконец, последнее: больше используйте встроенные, стандартные функции. Прежде 
чем писать какую-то процедуру, сверьтесь с документацией — возможно, она уже 

Часть III. Основы языка PHP 202 
реализована в ядре PHP. Если это так, то не думайте, что сможете написать ее 
эффек- 
тивнее на PHP — ведь часто самый неэффективный Си-код работает быстрее, чем 
самый изящный на PHP. Возможно, лучше пожертвовать объемом за счет быстродей- 
ствия — например, при работе с базами данных и сложными файлами лучше приме- 
нять стандартные функции сериализации, чем писать более эффективно упаковы- 
вающие, но свои, потому что стандартные работают очень быстро. Правда, из этого 

правила существуют и исключения: например, я бы не советовал вам использовать 
Serialize() для формирования строки, сохраняющейся в Cookies браузера — здесь 
лучше написать свои функции. Опять же, тут
 
<<-[Весь Текст]
Страница: из 287
 <<-