Профессиональное программирование на PHP

Страница 31 из 591


Именование 33

В данном случае в текущей таблице имен для переменной f оо создается запись и связывается с текущим значением данной переменной, bar. Аналогично, при определении класса или функции этот класс или функция вставляется в другую таблицу имен, см. пример ниже:

function hello($name) {

print "Hello $name\n";

}

В этом случае hello вставляется в другую таблицу имен, таблицу для функций, и связывается со скомпилированным деревом операций для своего кода.

В главе 20, "Устройство РНР и Zend Engine", рассматриваются механизмы данных операций в РНР. Здесь следует уделить основное внимание созданию удобочитаемого и обслуживаемого кода.

Имена переменных и функций наполняют PHP-код. Как хороший чертеж, схемы именования служат цели усиления логики кода для тех, кто читает код. Для крупных программных проектов готовится схема именования, которая позволяет гарантировать, что весь код выглядит единообразно. Представленные здесь правила адаптированы из руководств по стилю PEAR (РНР Extension and Application Repository - репо-зиторий PHP-расширений и приложений). PEAR представляет собой коллекцию РНР-сценариев и классов, задуманных как многократно используемые компоненты для удовлетворения различных потребностей. Как крупнейшая общедоступная коллекция PHP-сценариев и классов PEAR обеспечивает удобный стандарт, на котором базируются руководства по стилю. Таким образом, можно сформулировать первое правило именования переменных: никогда не использовать бессмысленных имен переменных. Хотя во множестве текстов (включая академические тексты по компьютерным наукам) для обобщения используются бессмысленные имена переменных, такие имена не служат полезной цели и не способствуют пониманию читателем кода. Например, такой код:

function test($baz) {

for($foo = 0; $foo < $baz; $foo++) { $bar[$foo] - "test $foo";

}

return $bar;

}

можно заменить следующим кодом с более осмысленными именами переменных, которые ясно описывают происходящее:

function create_test_array($size)

for($i = 0; $i < $size; $i++) { $retval[$i] = "test $i";

}

return $retval;

}

В PHP любая переменная, определенная вне класса или функции, автоматически становится глобальной. Переменные, определенные внутри функции, видимы только в пределах кода данной функции, а для того чтобы глобальные переменные были ви-




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006