Переменные в PHP

Когда выполняется код, нам надо где-то хранить промежуточные результаты и другие данные. Для этого в программировании используются переменные. В переменной можно сохранить какое-то число или строку. У каждой переменной есть имя, и она обозначается конструкцией вроде $daysPassed (в начале всегда ставится знак доллара). Название (daysPassed — «прошлоДней») придумывает программист. Чтобы сохранить значение в переменной, используется оператор =.
Например:

     $daysPassed = 10;
     

Эта команда создает переменную $daysPassed и кладет в нее число 10. Теперь можно вывести это значение с помощью echo:

     echo $daysPassed; → напечатает 10
     

Имя переменной начинается с буквы или символа подчеркивания и состоит из букв, символов подчеркивания, цифр или других ASCII-символов в интервале от 127 до 255.

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

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

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

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

  <?php
  
  /* глобальная область видимости */
    
  $age = 30;  // присвоить переменной age значение 30

  function birth() {
    // присвоить переменной age значение 1
    $age = 1;  // это локальная переменная - она видна только внутри функции
  }
     
  // Вызов функции
  birth();
     
  // выводим значение переменной age
  echo $age;  // => 30
   
?>

Внутри функции birth выполняется присваивание переменной $age значения 1, но это не таже самая переменная, что была определена в глобальной области видимости. Поэтому, когда выполняется вывод на экран значения переменной $age, выводится первоначальное значение 30.

  <?php

  /* глобальная область видимости */
    
  $age = 30;  // присвоить переменной age значение 30
  
  function birth() {
   
    $age = 1;  // это локальная переменная - она видна только внутри функции
    
    echo $age;  // выводим значение переменной внутри функции
    
  }
   
?>

Теперь мы вывели значение переменной $age внутри функции. Она выведит “1” т.к. мы обращаемся к локальной переменной.

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

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

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

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

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

Глобальные переменные позволяют вам пересекать границы между функциями, чтобы обращаться к значениям переменных. Ключевое слово global указывает, что данная переменная будет той же самой переменной повсюду в программе, то есть глобальной переменной. Изменение глобальной переменной внутри функции можно наблюдать за ее пределами. Не существует никаких ограничений на количество глобальных переменных, которые могут обрабатываться функцией:

<?php
 
  // присвоим переменной age значение 30
  $age = 30;
 
  // определяем функцию
  function birth() {
    // определить переменную как глобальную
    global $age;
      
    // увеличиваем значение переменной age на 1
    $age = $age + 1;
  }
  // вызываем функцию
  birth();
 
  //выводим значение переменной age
  echo $age;
  
?>

В результате исполнения этого кода будет выведено: 31.

Глобальные переменные следует использовать в редких случаях, поскольку легко изменить значение переменной по ошибке, не предусмотрев последствий.

4. Статические переменные

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

<?php
 
  // определение функции
  function birth() {
    // определяем переменную age как статическую
    static $age = 0;
     
    //увеличиваем значение age на 1
    $age = $age + 1;
     
    // выводим на экран значение переменной
    echo "Значение статической переменной: $age";
  }
 
  // вызываем дважды функцию
  birth();
  birth();
 
?>

Будет выведено:

Значение статической переменной: 1
Значение статической переменной: 2
  

Значение переменной $age сохраняется между вызовами функции birth. Это значение будет существовать, пока выполнение программы не завершится.

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

Переменные в переменных

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

 <?php
$a = "hello";
?>

Переменная берет значение переменной и рассматривает его как имя переменной. В вышеприведенном примере hello может быть использовано как имя переменной при помощи двух знаков доллара. То есть:

  <?php
$$a = "world";
?>
  

Теперь в дереве символов PHP определены и содержатся две переменные: $a, содержащая “hello”, и $hello, содержащая “world”. Таким образом, выведем:

<?php
echo "$a ${$a}";
?>

И также выведем:

  <?php
echo "$a $hello";
?>
  

Они обе выведут: hello world.

Стандартные переменные

В РНР поддерживается ряд стандартных переменных, предоставляющих в распоряжение программиста довольно подробную информацию о внутренней конфигурации. Значения одних переменных задаются РНР, другие изменяются в зависимости от операционной системы и web-сервера, с которыми работает РНР.

Чтобы получить полный список переменных web-сервера, окружения и РНР, определенных для вашей конфигурации системы, достаточно выполнить следующий код:

while(list($var,$value) = each($GLOBALS)) :
  echo "<BR>$var => $value";
endwhile;

Стандартные переменные содержат разнообразные сведения — как полезные, так и не очень.

Для закрепления материала попробуйте самостоятельно создать и вывести переменные любой сложности.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Один ответ к “Переменные в PHP”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Фреймворк Yii

Фреймворк Yii

Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить

 
Библиотека RedBeanPHP.

Библиотека RedBeanPHP.

RedBeanPHP – это мощная ORM для PHP, которая значительно упрощает работу с базами данных. ORM или Object-relational mapping (Объектно-реляционное отображение) — это технология программирования, которая

 
Безопасное хеширование паролей в PHP.

Безопасное хеширование паролей в PHP.

Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: