Профессиональное программирование на 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 любая переменная, определенная вне класса или функции, автоматически становится глобальной. Переменные, определенные внутри функции, видимы только в пределах кода данной функции, а для того чтобы глобальные переменные были ви- |
| |
|
В начало ←предыдущая следующая→ 12345678910 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 ... | ||