PHP 5 для начинающих |
Страница 56 из 813 В рассмотренных ранее примерах кода подразумевалось, что если создается переменная путем назначения ей имени, а затем данной переменной присваивается значение, то эту переменную можно использовать как угодно долго и когда угодно для передачи ее в любые функции обработки данных. В некоторой степени так оно и есть, однако имеется ряд ограничений. Эти ограничения связаны с областью видимости (scope) переменной. Область видимости переменной соответствует пространству в коде, где эта переменная (а фактически ее значение) доступна для манипуляции. Как уже отмечалось, большинство переменных доступны в любой точке PHP-программы, однако в описанной формально функции (подробное обсуждение функций приведено в главе 6) переменные являются локальными, т.е. они распознаются и используются в пределах данной функции. Ниже приведен пример простой функции: $my_data = "Внешние данные"; function send_data() { $my_data = "Внутренние данные"; echo $my_data; } send_data(); //отправляет внутренние данные пользователю echo $my_data; //отправляет внешние данные пользователю Данная функция просто возвращает данные. При вызове функции (предпоследняя строка кода) пользователю отправляется строка Внутренние данные. Однако если переменная $my_data выводится вне функции, как показано в последней строке кода, пользователю отправляется строка Внешние данные, поскольку переменная $my_data вне функции и переменная $my_data внутри функции представляют собой разные переменные, несмотря на то, что они имеют одинаковые имена. Область видимости переменной $my_data внутри функции называется локальной для данной функции. Кроме того, как только функция завершает свою работу, ее внутренняя переменная $my_data уничтожается, а ее значение теряется. Существует способ получить доступ к внешним переменным изнутри функции. Если переменная объявляется с ключевым словом global, то она будет доступна внутри функции, как показано в следующем примере (в главе 6 использование ключевого слова global описано более подробно): Эmy_data = "Внешние данные"; function send_data() { global $my_data; echo $my_data; } send_data(); //отправляет пользователю внешние данные echo $my_data; //также отправляет пользователю внешние данные Если при создании переменной внутри функции (т.е. область действия переменной локальна для данной функции и обычно теряется после завершения работы функции) используется ключевое слово static, то эта переменная и ее значение будет сохраняться между вызовами функции. Подобная возможность полезна в определенных ситуациях, когда желательно знать, сколько раз была вызвана данная функция. Например, |
Автомобили Toyota: запчасти для тойота ленд крузер.