PHP: Переменные
Когда в программе необходимо сохранить значение, чтобы использовать его позже, это значение присваивается переменной. Переменная — это просто символьное имя для значения, которое обеспечивает возможность получить значение по имени, то есть, когда в программе указывается имя переменной вместо неё подставляется значение.
При использовании переменных необходимо учитывать следующие правила:
- В 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[3] = "abc"; // Тоже самое, что и $arr = [3 => "abc"]; // При работе с переменной в качестве объекта $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 есть возможность использовать значение одной переменной в качестве имени другой переменной. Переменные, которые в качестве имени используют значение переменной называются переменные переменных .
Чтобы использовать значение переменной в качестве имени переменной, необходимо поставить дополнительный знак доллара перед именем переменной, значение которой будет использоваться в качестве имени:
С этой темой смотрят:
- Область видимости переменных
- Глобальные переменные
- Статические переменные
- Ссылки
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru | razumnikum.ru
Что значит знак «->» в PHP?
Добрый день, Подскажите пожалуйста начинающему, что значит знак «->» в PHP? Гуголю знак не поддается ( Например как интерпритировать выражение: if ( $use_desc_for_title == 0 || empty($category->description) ) Спасибо
На сайте с 15.12.2005
25 декабря 2013, 22:59
Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
На сайте с 07.12.2013
25 декабря 2013, 23:18
edogs:
http://www.php.net/manual/ru/language.oop5.properties.php
Большущее спасибо за оперативный ответ. Хоть понятно в какую сторону думать. и все же для наглядности «переведите» ))) пожалуйста с php на обывательский/человеческий условие if ( empty($category->description) ) ? ПС: Тапками не закидывайте пожалуйста — пытаюсь испортить первый шаблон Вордпресс 🙂 — по пути операторы php «с нуля » пытаюсь разобрать. Образование — Бейсик облегченный 🙂
На сайте с 04.07.2010
25 декабря 2013, 23:28
Переменная $category имеет свой массив, в ней есть аргумент description, то есть конструкция $category->description сразу обращается к этому аргументу. Можно еще $category[0][3] тоже самое что и $category->description
На сайте с 07.12.2013
25 декабря 2013, 23:39
AGRESSOR:
Переменная $category имеет свой массив, в ней есть аргумент description, то есть конструкция $category->description сразу обращается к этому аргументу.
Можно еще $category[0][3] тоже самое что и $category->description
Что такое в php
Переменные хранят отдельные значения, которые можно использовать в выражениях PHP. Для определения переменных применяется знак доллара $ . Например:
Здесь определена переменная $num . Поскольку определение переменной — это отдельная инструкция, она завершается точкой с запятой.
Как правило, названия переменный начинаются с маленькой буквы или символа подчеркивания. Стоит учитывать, что PHP является регистрозависимым языком, а значит, переменные $num и $Num будут представлять две разные переменные.
Также при наименовании переменных нам надо учитывать следующие правила:
- Имена переменных должны начинаться с алфавитного символа или с подчеркивания
- Имена переменных могут содержать только символы: a–z, A–Z, 0–9, и знак подчеркивания
- Имена переменных не должны включать в себя пробелы
С помощью операции присвоения ( = ) переменной присваивается определенное значение:
$num = 10;
Здесь определена переменная $num , которая хранит число 10.
После определения переменной и присвоения ей значения мы можем использовать ее в выражениях PHP. Например, вывести ее значение на веб-страницу:
METANIT.COM
С помощью функции echo значение переменной $num выводится на веб-страницу. И при обращении к скрипту мы увидим значение переменной $num :

Отличительной особенностью переменных является то, что мы можем изменять их значение:
Также можно присваивать значение другой переменной:
$a = 15; $b = $a; echo $b;
Если переменная объявлена, но ей изначально не присвоено никакого значения (иначе говоря она не инициализирована), то нам будет проблематично ее использовать. Например:
При попытке вывести значение переменной мы получим диагностическое сообщение о том, что переменная не определена:
Warning: Undefined variable $num in C:\localhost\hello.php on line 13 22
Поэтому перед использованием переменной ей следует присвоить начальное значение.
Вывод значения переменной
В предыдущих примерах для вывода значения переменной применялась команда echo , после которой указывалось выводимое значение. Однако есть и другой способ вывести значение переменной. Например, мы хотим одновременно вывести значения двух переменных:
Здесь функции echo передается строка. Чтобы встроить в строку значение переменной, в этой строке указываем имя переменной вместе со знаком $. И кода в строке PHP встретит выражение $num_1 , он заменит это выражение значением переменной $num_1. То же самое касается и переменной $num_2 . В итоге при выполнении этого скрипта браузер отобразит значения обеих переменных:
num_1 = 11 num_2=35
Что такое в php
Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчёркивания и состоять из букв, цифр и символов подчёркивания в любом количестве. Это можно отобразить регулярным выражением: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$
Замечание: Под буквами здесь подразумеваются символы a-z, A-Z и байты от 128 до 255 ( 0x80-0xff ).
Замечание: $this — это специальная переменная, которой нельзя ничего присваивать. До PHP 7.1.0 было возможно косвенное присвоение (например, с использованием переменных переменных).
Подсказка
Для информации о функциях работы с переменными обращайтесь к разделу функций работы с переменными.
$var = ‘Боб’ ;
$Var = ‘Джо’ ;
echo » $var , $Var » ; // выведет «Боб, Джо»
?php
$ 4site = ‘ещё нет’ ; // неверно; начинается с цифры
$_4site = ‘ещё нет’ ; // верно; начинается с символа подчёркивания
$täyte = ‘mansikka’ ; // верно; ‘ä’ это (Расширенный) ASCII 228.
?>
По умолчанию переменные всегда присваиваются по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что после того как одной переменной присвоено значение другой, изменение одной из них не влияет на другую. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.
PHP также предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, «становится псевдонимом» или «указывает») на оригинальную переменную. Изменения в новой переменной отражаются на оригинале, и наоборот.
Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит ‘ Меня зовут Боб ‘:
$foo = ‘Боб’ ; // Присваивает $foo значение ‘Боб’
$bar = & $foo ; // Ссылка на $foo через $bar.
$bar = «Меня зовут $bar » ; // Изменение $bar.
echo $bar ;
echo $foo ; // меняет и $foo.
?>?php
Важно отметить, что по ссылке могут быть присвоены только именованные переменные.
$foo = 25 ;
$bar = & $foo ; // Это верное присвоение.
$bar = &( 24 * 7 ); // Неверно; ссылка на неименованное выражение.
?php
function test ()
return 25 ;
>
Хорошей практикой считается инициализировать переменные, хотя в PHP это и не является обязательным требованием. Неинициализированные переменные принимают значение по умолчанию в зависимости от их типа, который определяется из контекста их первого использования: булевы принимают значение false , целые числа и числа с плавающей точкой — ноль, строки (например, при использовании в echo ) — пустую строку, а массивы становятся пустыми массивами.
Пример #1 Значения по умолчанию в неинициализированных переменных
// Неустановленная И не имеющая ссылок (то есть без контекста использования) переменная; выведет NULL
var_dump ( $unset_var );
?php
// Булевое применение; выведет ‘false’ (Подробнее по этому синтаксису смотрите раздел о тернарном операторе)
echo $unset_bool ? «true\n» : «false\n» ;
// Строковое использование; выведет ‘string(3) «abc»‘
$unset_str .= ‘abc’ ;
var_dump ( $unset_str );
// Целочисленное использование; выведет ‘int(25)’
$unset_int += 25 ; // 0 + 25 => 25
var_dump ( $unset_int );
// Использование в качестве числа с плавающей точкой (float); выведет ‘float(1.25)’
$unset_float += 1.25 ;
var_dump ( $unset_float );
// Использование в качестве массива; выведет array(1) < [3]=>string(3) «def» >
$unset_arr [ 3 ] = «def» ; // array() + array(3 => «def») => array(3 => «def»)
var_dump ( $unset_arr );
// Использование в качестве объекта; создаёт новый объект stdClass (смотрите http://www.php.net/manual/ru/reserved.classes.php)
// Выведет: object(stdClass)#1 (1) < ["foo"]=>string(3) «bar» >
$unset_obj -> foo = ‘bar’ ;
var_dump ( $unset_obj );
?>
Полагаться на значения по умолчанию неинициализированных переменных довольно проблематично при включении файла в другой файл, использующий переменную с таким же именем. В случае работы с неинициализированной переменной вызывается ошибка уровня E_WARNING (до PHP 8.0.0 выбрасывалась ошибка уровня E_NOTICE ), за исключением случая добавления элементов в неинициализированный массив. Для обнаружения инициализации переменной может быть использована языковая конструкция isset() .
User Contributed Notes 5 notes
13 years ago
This page should include a note on variable lifecycle:
Before a variable is used, it has no existence. It is unset. It is possible to check if a variable doesn’t exist by using isset(). This returns true provided the variable exists and isn’t set to null. With the exception of null, the value a variable holds plays no part in determining whether a variable is set.
Setting an existing variable to null is a way of unsetting a variable. Another way is variables may be destroyed by using the unset() construct.
print isset( $a ); // $a is not set. Prints false. (Or more accurately prints ».)
$b = 0 ; // isset($b) returns true (or more accurately ‘1’)
$c = array(); // isset($c) returns true
$b = null ; // Now isset($b) returns false;
unset( $c ); // Now isset($c) returns false;
?>
is_null() is an equivalent test to checking that isset() is false.
The first time that a variable is used in a scope, it’s automatically created. After this isset is true. At the point at which it is created it also receives a type according to the context.
$a_bool = true ; // a boolean
$a_str = ‘foo’ ; // a string
?>
If it is used without having been given a value then it is uninitalized and it receives the default value for the type. The default values are the _empty_ values. E.g Booleans default to FALSE, integers and floats default to zero, strings to the empty string », arrays to the empty array.
A variable can be tested for emptiness using empty();
$a = 0 ; //This isset, but is empty
?>
Unset variables are also empty.
empty( $vessel ); // returns true. Also $vessel is unset.
?>
Everything above applies to array elements too.
$item = array();
//Now isset($item) returns true. But isset($item[‘unicorn’]) is false.
//empty($item) is true, and so is empty($item[‘unicorn’]
$item [ ‘unicorn’ ] = » ;
//Now isset($item[‘unicorn’]) is true. And empty($item) is false.
//But empty($item[‘unicorn’]) is still true;
$item [ ‘unicorn’ ] = ‘Pink unicorn’ ;
//isset($item[‘unicorn’]) is still true. And empty($item) is still false.
//But now empty($item[‘unicorn’]) is false;
?>
For arrays, this is important because accessing a non-existent array item can trigger errors; you may want to test arrays and array items for existence with isset before using them.