П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176233 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 73089 раз(а).

Учебник HTML.
Просмотров 72743 раз(а).

Руководство по PHP5.
Просмотров 43493 раз(а).

Хостинг через призму DNS.
Просмотров 50100 раз(а).

Подборка текстов стандартных документов.
Просмотров 43730 раз(а).

Учебник PHP - Самоучитель
Просмотров 50047 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 50409 раз(а).

Внешние атаки...
Просмотров 40813 раз(а).

Учебник PHP.
Просмотров 35935 раз(а).

SSI в примерах.
Просмотров 26996 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Глава 2. Переменные и типы данных

Область видимости переменных

Область видимости(scope) определяется как область доступности переменной в той программе, в которой она была объявлена. В зависимости от области видимости переменные РНР делятся на четыре типа:

  •  локальные переменные;
  • параметры функций;
  • глобальные переменные;
  • статические переменные.

Локальные переменные

Переменная, объявленная внутри функции, считается локальной; другими словами, на нее можно ссылаться только в этой функции. При любом присваивании вне функции будет использоваться совершенно другая переменная, которая не имеет ничего общего(кроме имени) с переменной, объявленной внутри функции. При выходе из функции, в которой была объявлена локальная переменная, эта переменная и ее значение уничтожаются.

Основное достоинство локальных переменных — отсутствие непредвиденных побочных эффектов, связанных со случайной или намеренной модификацией глобальной переменной. Рассмотрим следующий пример:

$х = 4;

function assignx() {
  $х = 0;
  print "\$x inside function is $x. <br>";
}

assignx();
print "\$x outside of function is $x. <br>";

При выполнении этого фрагмента выводится следующий результат:

$х inside function is 0.
$х outside of function is 4.

Как видите, программа выводит два разных значения переменной $х. Дело в том, что переменная $х внутри функции assignx имеет локальную природу, и изменение ее значения никак не отражается на значении, существующем за пределами этой функции. Справедливо и обратное — модификация $х за пределами функции никак не отражается на локальных переменных функции assignx().

Параметры функций

В РНР, как и во многих других языках программирования, любые параметры, передаваемые функции при вызове, должны быть объявлены в заголовке функции. Хотя параметрам присваиваются аргументы, переданные извне, после выхода из функции они становятся недоступными.

Параметры объявляются в круглых скобках после имени функции. Объявление параметров практически не отличается от объявления типичной переменной:

// Функция умножает переданное значение на 10 и возвращает результат
function x10($value) {
  $value = $value * 10;
  return $value;
}

Хотя вы можете обращаться к параметрам в той функции, в которой они были объявлены, и выполнять с ними необходимые операции, после завершения функции параметры уничтожаются.

Глобальные переменные

Глобальные переменные, в отличие от локальных, доступны в любой точке программы. Но чтобы изменить значение глобальной переменной, необходимо специально объявить ее как глобальную в соответствующей функции. Для этого перед именем переменной ставится ключевое слово GLOBAL. Пример:

$somevar = 15;

function addit() {
  GLOBAL $somevar;

  $somevar++;
  print "Somevar is $somevar";
}

addit();

Будет выведено значение $somevar, равное 16. Допустим, вы забыли включить следующую строку:

GLOBAL $somevar;

В этом случае $somevar будет присвоено значение 1, поскольку эта переменная будет считаться локальной по отношению к функции addit(). Локальная переменная по умолчанию инициализируется 0, а затем к ней прибавляется 1; таким образом, будет выведено значение 1.

Альтернативный способ объявления глобальных переменных связан с использованием массива РНР $GLOBALS(). Давайте вернемся к предыдущему примеру и воспользуемся этим массивом для объявления глобальной переменной $somevar: $somevar = 15;

function addit() {
  $GLOBALS["somevar"];

  $somevar++;
}

addit();

print "Somevar is $somevar";

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

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru