Знакомство с PHP переменными

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

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

Присвоение имени и создание переменной в PHP

Все имена переменных PHP должны быть снабжены префиксом $. Он информирует препроцессор языка, что он имеет дело с переменной. Например $my_var. Первый символ имени должен быть буквой или символом подчеркивания (_). Остальные символы могут быть только буквами, цифрами или символами подчеркивания. Все остальные символы считаются недействительными для использования в имени переменной.

Посмотрим на некоторые допустимые и недопустимые имена переменных PHP:

$_myName // допустимо

$myName  // допустимо

$__myvar // допустимо

$myVar21 // допустимо

$_1Big   // недопустимо, подчеркивание должно следовать после буквы

$1Big    // недопустимо — должно начинаться с буквы или символа подчеркивания

$_er-t   // недопустимо — содержит буквенно-цифровой символ (-)

Имена PHP переменных чувствительны к регистру. Это означает, что PHP считает переменную $ _myVariable отличной от переменной » $ _myvariable.

Присвоение значения переменной РНР

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

Начнем с присвоения слова «Круг» переменной с именем myShape:

$myShape = «Круг»;

Мы объявили переменную с именем myShape и присвоили ей строковое значение «Круг«. Аналогичным образом можно объявить переменную, содержащую численное значение:

$numberOfShapes =  6;

Мы создаем переменную numberOfShapes и присваиваем ей числовое значение 6. После того, как PHP переменная была создана, присвоенное ей значение может быть изменено с помощью оператора присваивания:

<?php $numberOfShapes =  6; // Присвоено начальное значение $myShape = «Круг»; $numberOfShapes =  7; // Изменение изначального значения на новое $myShape = «Квадрат»; ?>

Присвоение значений по ссылке

Начиная с php 4, есть еще один способ присвоения значений переменным: присвоение по ссылке. Для того, чтобы присвоить значение переменной по ссылке, это значение должно иметь имя, то есть оно должно быть представлено какой-либо переменной. Чтобы указать, что значение одной переменной присваивается другой переменной по ссылке, нужно перед именем первой переменной поставить знак амперсанд &.

Рассмотрим пример:

<?php

$first = ‘ Text ‘;

// Присваиваем $first

// значение ‘ Text ‘

$second = &$first;

/* Делаем ссылку на $first через $second.

Теперь значения этих переменных будут всегда совпадать */

// Изменим значение $first

// на ‘ New text ‘

$first = ‘ New text ‘;

echo «Переменная с именем first » .     «равна .$first 
«;
// выведем значения обеих переменных

echo «Переменная с именем second » .     «равна $second»;

?>

Этот скрипт выведет следующее:

Переменная с именем first равна New text.

Переменная с именем second равна New text.

То есть вместе с переменной $first изменилась и переменная $second.

Доступ к PHP значениям переменных

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

<?php echo «Номер фигуры $numberOfShapes.»; ?>

Это приведет к следующему выводу в браузере:

Номер фигуры 6.

Точно так же можно отобразить значение переменной myShape:

<?php echo "$myShape – значение текущей фигуры."; ?>

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

<?php echo "Круг 6 $numberOfShapesth фигура"; ?>

То, что нам нужно в этом случае выводится следующим образом:

Круг это 6-я фигура.

К сожалению, PHP будет видеть th на конце имени переменной $ numberOfShapes как часть имени. Затем он попытается вывести значение переменной $ numberOfShapesth, которой не существует. Это приводит к тому, что значение этой переменной не отображается:

Круг это фигура.

Можно обойти эту проблему, поставив фигурные скобки ({ }) вокруг имени переменной, чтобы экранировать ее от других символов:

<?php echo "Круг это ${numberOfShapes}th фигура"; ?>

Что дает нам желаемый результат:

Круг это 6-я фигура.

Изменение типа РНР переменной

PHP типы переменных: целое, вещественное, логическое, массив, объект и строка. Для начала рассмотрим изменение типа переменной после ее создания.

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

Слабо типизированные языки, такие как PHP и JavaScript, позволяют изменять тип переменной в любой момент существования переменной путем присвоения ей значения другого типа. Например, можно создать переменную, присвоить ей целое значение, а позже поменять на string:

<?php $myNumber = 6; // переменная целого типа $myNumber = "шесть"; // тип переменной изменился на строковый ?>

Процесс динамического изменения типа переменной называется автоматическим преобразованием типов.

Проверка установлена ли переменная

В PHP проверка существования переменной является часто используемой операцией. В этом языке предусмотрен механизм для обеспечения этой возможности путем использования функции isset(). Чтобы проверить, имеет ли переменная значение, вызывают функцию isset(), которой в качестве аргумента передается имя переменной:

<?php $myVariable = "Привет"; if (isset($myVariable)) { echo "Переменная инициализирована."; } else { echo " Переменная не инициализирована."; } ?>

Соединение переменных

Переменную можно соединять с другими переменными или тегами XHTML с помощью оператора PHP — точки ( .).  Чтобы создать возврат каретки или перенос строки, можно присоединить тег XHTML <br/> в конце каждой переменной:

<?php

$string_var = "My PHP program" . "<br/>";

$integer_var = 500 . "<br/>";

$float_var = 2.25;

echo $string_var;

echo $integer_var;

echo $float_var;

?>

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

Оператор точки можно использовать также для соединения строк и переменных:

Сообщение — The user\’s name is John Doe — выводится в окне браузера.

Строка «The user’s name is » соединяется со значением $fname (John), за которым следует пробел » «, и значением $lname(Doe).

<!DOCTYPE html >

<head>

<title>A Web Page</title>

</head>

<body>

<p>

<?php

$fname = "John";

$lname = "Doe";

echo "The user\'s name is " . $fname ." ". $lname;

?>

</p>

</body>

</html>

Интерполяция

PHP поддерживает также процесс, называемый интерполяцией – замену переменной в строке ее содержимым. Вместо соединения переменных и литералов, их можно объединять внутри двойных кавычек («»). Интерполяция является свойством только двойных кавычек. Переменные и литералы нельзя объединить внутри одиночных кавычек. При использовании двойных кавычек значение переменной выводится вместе с литералом. При использовании одиночных кавычек выводится «буквально» имя переменной вместе с остальной строкой. Следующий пример иллюстрирует свойство интерполяции PHP.

<!DOCTYPE html>

<head>

<title>A Web Page</title>

</head>

<body>

<p>

<?php

$fname = "John";

$lname = "Doe";

echo "The user\'s name is $fname  $lname";

?>

</p>

</body>

</html>

Этот код создает такой же вывод, как и предыдущий пример. Здесь переменные объединяются с помощью литеральной строки, заключенной в двойные кавычки. Соединение (конкатенация) не требуется.
<h2>Форматирование вывода валюты</h2>
Кроме вывода стандартного текста можно применять для вывода форматированного текста вариант конструкции print с именем sprintf. Оператор требует задания форматирующей строки и значения для форматирования.

sprintf("%01.2f", $var) - выводит значение '$var' как валюту.

Оператор sprintf показан ниже:

<!DOCTYPE html>

<head>

<title>A Web Page</title>

</head>

<body>

<p>

<?php

$amount = 35;

$tax = 2.50;

$total = $amount + $tax;

echo "$" . sprintf("%01.2f", $total);

?>

</p>

</body>

</html>