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

Последнее обновление: 1.11.2015

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

Здесь определена переменная, которая будет хранить число 10. Присвоение значения происходит с помощью знака равенства = .

Можно присваивать значение другой переменной:

$a = 10; $b=$a; echo $b;

PHP является регистрозависимым языком, а значит, переменные $counter и $Counter будут представлять две разные переменные.

Также при наименовании переменных нам надо учитывать следующие правила:

    Имена переменных должны начинаться с алфавитного символа или с подчеркивания

    Имена переменных могут содержать только символы: a–z, A–Z, 0–9, и знак подчеркивания

    Имена переменных не должны включать в себя пробелы

Проверка существования переменной. Оператор isset

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

При попытке вывести значение переменной мы получим диагностическое сообщение о том, что переменная не определена: Notice: Undefined variable: a in C:\localhost\echo.php on line 3 .

Оператор isset() позволяет определить, инициализирована ли переменная или нет. Если переменная определена, то isset() возвращает значение true . Если переменная не определена, то isset() возвращает false . Например:

Для проверки переменной использовалась конструкция if...else , которая определяет истинность выражения. И если выражение истинно, тогда выполняется выражение после блока if. Если же выражение ложно (то есть равно false), выполняется выражение после блока else

Здесь переменная не инициализирована, поэтому оператор isset($a) будет возвращать значение false , и, следовательно, будет срабатывать блок else . Если бы мы присвоили переменной некоторое начальное значение, например, $a=20 , то оператор isset возвратил бы значение true , и браузер вывел бы ее значение.

С помощью оператора unset() мы можем уничтожить переменную:

В этой статье, я попытаюсь дать комплексный обзор обо всех видах переменных существующих в PHP.

Переменная в PHP — это именованная область в памяти, которая хранит в себе какие-либо данные: числа, строки (текст) и т.д. У каждой переменной в памяти имеется свой уникальный адрес, который даётся ей при её создании. Имя переменной ссылается на этот адрес.

У переменной имеется имя (которое вы придумываете сами при создании переменной), обращаясь к переменной по имени, можно получить данные которая она в себе хранит. Получая доступ к переменной по её имени, мы можем оперировать данными хранящимися в переменной: сохранять, считывать, изменять и удалять их.

Имена переменных в PHP начинаются со знака доллара $ :

$имяПеременной; // объявление переменной $имяПеременной = значение; // инициализация переменной

При инициализации, переменная создаётся автоматически, поэтому её можно и не объявлять:

$имяПеременной = значение; // одновременное объявление и инициализация переменной

Значения переменных в PHP

В качестве значения переменной, могут выступать:
— обычные значения (строки, числа, boolean и т.д.),
— другие переменные,
— ссылочные переменные,
— функции (значение которое возвращает функция),
— константы, массывы, объекты и т.д.

Приведём примеры присваивания переменным различных значений:

$var = 5; // присвоили переменной число $var = "Строка"; // присвоили переменной строку $var = true; // присвоили переменной булево значение $var = NULL; // присвоили переменной значение NULL $var = array(1, "два", true); // присвоили переменной массив $var = $var; // присвоили переменной элемент массива $var = $_POST["var"]; // присвоили переменной данные из формы $var = new Object(); // присвоили переменной объект

Виды переменных в PHP

Переменные в PHP подразделяются на несколько видов, рассмотрим их:

  • Обычные переменные (присваивание по значению).
  • Ссылочные переменные (присваивание по ссылке).
  • Переменные переменных (динамические переменные).

Ссылочные переменные в PHP

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

Ссылочные переменные это присваивание по ссылке . Для того чтобы присвоить какую-либо переменную по ссылке, нужно перед её именем добавить знак амперсанд & , пример:

$a = 5; $b = & $a; $a = 7; echo $b; // выведет 7

Если изменим значение переменной $b , то значение для переменной $a тоже изменится.

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

Переменные переменных (динамические переменные) применяются крайне редко, просто знайте о них. Чтобы использовать динамическую переменную, нужно перед именем переменной, добавить ещё один знак доллара $ .

$hello = "world"; $a = "hello"; echo $a; // покажет hello echo $ $a; // покажет world

Разберём четвёртую строку:
echo $$a — это $ и $a , $a — это hello , соединяем $ и hello , получаем переменную $hello которая имеет значение world .

Разное о переменных в PHP

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

Echo @$имяПеременной;

Если нужно отделить переменную от информации, но при этом записать их слитно, то можно использовать фигурные скобки { } .

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

При использовании переменных необходимо учитывать следующие правила:

  • В PHP не нужно объявлять переменную перед тем как начать её использовать.
  • Переменные в PHP представлены знаком доллара с последующим именем переменной .
  • Имена переменных чувствительны к регистру символов, это означает, что имена переменных $myVar , $MYVAR или $MyVar будут считаться, как имена трёх различных переменных.

Инициализация - это присвоение начального значения переменной. Присвоить какое-либо значение переменной можно с помощью оператора присваивания , который обозначается символом равно (=):

$str = "строка1, "; $Str = "строка2"; echo $str, $Str;

Переменные в PHP не имеют типа, поэтому переменной может быть присвоено сначала значение одного типа, а затем этой же переменной может быть присвоено значение другого типа:

$x = 10; // Сначала присваивается число $x = "текст"; // Затем присваивается строка

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

$num1 = 10; $num2 = $num1; // Тоже самое, что и $num2 = 10;

В этом примере переменной $num1 присваивается число 10. Затем переменной $num2 присваивается значение переменной $num1 . Несмотря на то, что переменные $num1 и $num2 имеют одинаковое значение, каждая из них содержит собственную копию числа 10, поэтому изменение значения одной из них не повлияет на другую:

$num2: " . $num2; // 10 $num1 = 20; echo "
$num1: " . $num1; // 20 echo "
$num2: " . $num2; // 10 ?>

Неинициализированная переменная, то есть такая, которой не было присвоено никакого значения, принимает значение по умолчанию в зависимости от контекста её использования:

  • При работе со строками - пустую строку.
  • При работе с числами - число нуль.
  • Там, где ожидается булево значение - FALSE .
  • При работе с переменной в качестве массива - пустой массив.
  • При работе с переменной в качестве объекта - объект типа stdClass .
  • Без контекста использования - специальное значение NULL .
// При работе со строками $str = $str . "abc"; // Тоже самое, что и "" . "abc" // При работе с числами $num = $num + 25; // Тоже самое, что и 0 + 25 // Там, где ожидается булево значение $num = $bool ? 1: 2; // Тоже самое, что и FALSE ? 1: 2; // При работе с переменной в качестве массива $arr = "abc"; // Тоже самое, что и $arr = ; // При работе с переменной в качестве объекта $obj->foo = "abc"; // new stdClass; $obj->foo = "abc"; // Без контекста использования echo gettype($x); // NULL

Зачем нужны переменные?

Переменные помогают сделать программный код понятнее. Рассмотрим небольшой пример:

$total_price = 2.42 + 4.33; // Общая цена

Имеющиеся здесь числа могут означать что угодно. Чтобы стало понятнее, что здесь суммируется, можно присвоить 2.42 в качестве значения переменной $candy_price (цена конфет), а 4.33 - в качестве значения переменной $oil_price (цена масла):

$total_price = $candy_price + $oil_price;

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

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

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

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

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

— это ячейка памяти для хранения данных.

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

Каждая переменная имеет своё собственное имя которое ей даёт программист.

Начинается оно всегда знаком $ , после которого можно ставить любые числа и буквы латиницы, а также знаки подчёркивания. Только первым знаком после $, цифру и подчёркивание ставить нельзя.

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

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

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

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

Имена переменных чувствительны к регистру букв, что конечно упрощает их выбор, так как next и nExt уже будут два разных имени.

Давайте напишем скрипт с переменными, и выведем содержащиеся в них данные на экран.

$next = "Это данные в переменной";
$nExt = "Это данные в другой переменной";
echo "$next. $nExt";
?>

Браузер должен показать вот такую строку.

Разберём скрипт по составу.

$ — с этого знака всегда начинается имя переменной.
nExt — имя переменной.
= — оператор присвоения.
"Это данные в другой переменной" — значение переменной.
echo — команда вывод на экран.
?> — конечный тег php

Первые две строки после начального тега — объявление переменной. Т.е. указывается имя переменной и вся информация которая в ней содержится.

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

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

$scolco_let= 5.5 ;
$marcaAvto= "Лада";
$probegAvto= 100 ;

?>

Как видите, для разделения числовых значений, в качестве разделителя в php применяется точка.

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

Делается это следующим образом: после имени переменной ставится нужный математический оператор, определяющий вид действия (+, -, *, /), затем оператор присвоения (=), и число, на которое нужно произвести действие.

$x= 10 ;
$x+= 10 ;
echo "$x";
?>

Эта программа выведет число 20.

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

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

Если по простому, то тип переменной определяется её содержанием. Если в переменной число — это integer или double (числовые типы), если строка — строковой тип string и т.д.

На имя переменной её тип не влияет, т.е. по имени невозможно определить к какому типу переменная относится.

Для определения типа переменной, при необходимости, есть специальная функция, но об этом чуть ниже.

Основные типы переменных:

integer — Целые числа разрядность которых зависит от разрядности операционной системы компьютера.

Если она составляет 32 бита то число может принимать значение от -2 147 483 648 до 2 147 483 647, если разрядность 64 бита, то от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807.

double (float) — Число с плавающей точкой значение которого возможно от 1.7 х 10 -308 до 1.7 х 10 308 с любым знаком (+ или -).

string — Строковый тип. может хранить строки любого объёма.

boolean — логический тип принимающий лишь два значения: true (истина) и false (ложь).

array — Тип массивы — это объединение нескольких однотипных переменных.

object — Тип объект — объединение нескольких разнотипных переменных и методов их обработки.

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

NULL — Специальный тип, предупреждающий о том что переменная не была инициализирована.

Рассмотрим их в общих чертах по порядку. Хоть переменные php и не требуют строгого задания типа, при их объявлении, но общие понятия о них, думаю, иметь всё же необходимо.

Целые числа (integer) .

Целые числа — это наиболее простой, а значит и наиболее быстродействующий тип данных. По умолчанию задаются они в десятичной системе исчисления. Однако php допускает задавать их в восьмеричной и шестнадцатеричной системах.

Что это значит? В восьмеричной системе основанием числа служит величина 8, так же как 10 в десятичной системе, а для всех чисел используются цифры от 0 до 7

В шестнадцатеричной, соответственно, величина 16, и цифры от 0 до 9. Кроме того в шестнадцатеричной системе для выражения числа применяются буквы английского алфавита A, B, C, D, E, F, обозначающие цифры, соответственно 10, 11, 12, 13, 14, 15.

В значениях переменных перед числом в восьмеричной системе ставиться префикс 0, а в шестнадцатеричной — 0х

$next= 123 ; //десятичное число
$next= 0123 ; //восьмеричное число
$next= 0x123 ; //шестнадцатеричное число
$next= 0xABCDEF ; //шестнадцатеричное число
?>

Число с плавающей точкой, вещественное число (double или float) .

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

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

//Объявление вещественного числа в стандартной форме
$next= 1.23456 ;
$next= -1.23456 ; //Отрицательное вещественное число
//Объявление вещественного числа в научной форме
$next= 1.23456 ; //Положительное вещественное число
$next= 1.23456e+2 ; //Положительное число больше единицы (123.456)
$next= 1.23456e-2 ; //Положительное число меньше единицы (0.0123456)
?>

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

Строки (string)

Строки могут принимать любой, произвольный размер, и формируются путём заключения той или иной фразы в кавычки. В php используется 3 вида кавычек.

Это прямые двойные кавычки, прямые одиночные кавычки (апострофы), и прямые обратные кавычки (обратные апострофы).

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

echo "Зададим class="next" для следующих элементов";
?>

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

$scolco_let= 5.5 ;
$marcaAvto= "Лада";
$probegAvto= 100 ;
echo "За $scolco_let лет $marcaAvto проехала $probegAvto тыс. км.";
?>

Как видно, если разместить в кавычках имя переменной, то на экран выводится её значение.

Допускается так же обрамление двойных кавычек двойными же кавычками, но в таком случае внутренние кавычки экранируются обратным слешем.

echo "Зададим class=\"next\" для следующих элементов";
?>

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

$next= "Бензо";
echo "Работает {$next}-генератор."; //Работает Бензо-генератор.
echo "Засорился {$next}насос."; //Засорился Бензонасос.
?>

Логический тип (boolean)

Как уже говорилось выше, переменные этого типа могут принимать только два значения — TRUE (истина) и FALSE (ложь). Используются они для сравнения и управления циклами.

Более подробно их рассмотрим в статье посвящённой операторам php.

Массивы(array)

Массивы — это набор данных, состоящий из однотипных элементов.

$next[ 0 ]= "Бульдог";
$next[ 1 ]= "Питбуль";
$next[ 2 ]= "Дог";
echo $next[ 0 ] ;
echo "
";
echo $next[ 1 ] ;
echo "
";
echo $next[ 2 ] ;
?>

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

Объект(object)

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

Структура объекта схожа с массивом, только для доступа к его отдельным элементам применяются не квадратные скобки, а оператор ->.

Инициализации объекта осуществляется выражением new, которое создаёт в переменной экземпляр объекта.

class foo
{
function do_foo()
{
echo "Doing foo.";
}
}

$bar = new foo;
$bar-> do_foo();
?>

К объектам мы ещё вернёмся и будем изучать их более подробно.

Специальный тип NULL предназначен для того, чтоб отметить неинициализированную переменную. Такая переменная образуется, если в ней пропущен оператор присвоения = , или если она уничтожается конструкцией unset() .

Определение типа переменной

Для определения типа переменной, в php поддерживается несколько типов функций. Это функции проверяющие принадлежность переменной к определённому типу данных (is_string() , is_integer() , is_bolead() и так далее).

Все они начинаются префиксом is_ после которого идёт название типа.

Универсальной функцией, позволяющей определить тип любой переменной, является функция gettype() . Получив в качестве аргумента переменную, она возвращает её тип.

//Объявляем переменную с целым числом
$next= 123 ;
echo gettype($next); //выведет integer

//Объявляем переменную с вещественным числом
$next= 1.23456 ;
echo gettype($next); //выведет double

//Объявляем переменную со строкой
$next= "......";
echo gettype($next); //выведет string
?>

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


Перемена

– Мама! А правда я такая страшная?
– Сейчас ничего, а когда родилась, доктор сказал: «Зашевелится, стреляйте…»

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

Давайте сразу создадим переменную и выведем её:

$x = 15;
echo $x;
?>

Здесь мы объявляем переменную x , которой присваиваем значение 15 . Затем мы выводим её. Обратите внимание, что переменная всегда предворяется знаком $ .

Теперь создадим ещё одну переменную:

$str = "some string";
echo $str;
?>

Тут мы создаём переменную str и присваиваем её строчное значение "some string ". Как видите, строки в PHP ставятся в кавычках, впрочем, как и в большинстве языков программирования.

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

1) Integer - целый тип данных.

2) Double - вещественный тип с двойной точностью.

3) Float - вещественный тип данных с одинарной точностью.

4) String - строковый тип.

5) Boolean - булевский тип данных (только два значения: true или false ).

5) Array - массив

6) Resource - некий ресурс.

7) Object - объектный тип.

С последними тремя типами данных в PHP мы познакомимся попозже. А вот разницу между float и double давайте обсудим. Не очень понимаю, почему возникает такое количество вопросов по этому моменту. Видно, очень непонятно пишут авторы многих учебных пособий. Поэтому, чтобы исправить эту ошибку, постараюсь объяснить максимально простым языком. Разница между float и double только в диапазоне значений. Double - это тот же float , только диапазон значений гораздо больше, но и памяти он отнимает в 2 раза больше (8 байт , если мне память не изменяет, а float только 4 байта ).

Давайте теперь поработаем с переменными в PHP . Для этого напишем такой код:

$x = 5;
$y = -4.5;
$summa = $x + $y;
echo $summa;
?>

Здесь мы объявили две переменных в PHP , присвоили им значения, посчитали их сумму, а потом вывели результат.

Думаю, в этой статье достаточно знаний для начала. В следующей статье мы разберём оператор условия IF , а также узнаем об одной очень важной функции - isset() .

 
Статьи по теме:
Как установить MiFlash и драйверы для смартфонов Xiaomi Сложные способы решения
Это подготовительная статья для инструкций по обновлению программного обеспечения смартфонов Xiaomi. Мы все прекрасно знаем, что театр начинается с вешалки, а работа с приложением — с инсталляции. Поскольку есть некоторые нюансы при установке приложения M
TrueCrypt шифрование важных файлов
TrueCrypt — это программная система для создания и использования шифруемого-на-лету тома (устройства хранения данных). Шифрование-на-лету означает, что данные автоматически шифруются или дешифруются прямо во время их считывания или записи, не отвлекая пол
Какую форму имеет канал гранде
Гранд-канал (Canal Grande) представляет собой основной транспортный канал Венеции, являющийся одновременно и так называемой «главной улицей» этого города на воде. Он пересекает в виде буквы S все пространство города, по его берегам располагаются самые кра
Как заблокировать доступ к вконтакте
Покажу как закрыть доступ ВКонтакте на компьютере. Закрыть доступ вы можете своей подруге или детям, чтобы они не лазили с компьютера вконтакт и не тратили время. Этот способ закроет доступ сайту вконтакте только на компьютере. Заходим в папку etc, она на