Загрузка...

Основы переменных в PHP

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

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

Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
Замечание: Под буквами здесь подразумеваются символы a-z, A-Z, и байты от 127 до 255 (0x7f-0xff).
Замечание: $this - это особая переменная, которой нельзя ничего присваивать.

<?php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var";      // выведет "Bob, Joe"
$4site = 'not yet';     // неверно; начинается с цифры
$_4site = 'not yet';    // верно; начинается с символа подчеркивания
$t&#228;yte = 'mansikka';    // верно; '&#228;' это (Расширенный) ASCII 228.
?>

По умолчанию, переменные всегда присваиваются по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что, после того как одной переменной присвоено значение другой, изменение одной из них не влияет на другую. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.
PHP также предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, "становится псевдонимом" или "указывает") на оригинальную переменную. Изменения в новой переменной отражаются на оригинале, и наоборот.
Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит 'Меня зовут Боб':

<?php
$foo = 'Боб';              // Присваивает $foo значение 'Боб'
$bar = &$foo;              // Ссылка на $foo через $bar.
$bar = "Меня зовут $bar";  // Изменение $bar...
echo $bar;
echo $foo;                 // меняет и $foo.
?>


Важно отметить, что по ссылке могут быть присвоены только именованные переменные.

<?php
$foo = 25;
$bar = &$foo;      // Это верное присвоение.
$bar = &(24 * 7);  // Неверно; ссылка на неименованное выражение.

function test()
{
   return 25;
}

$bar = &test();    // Неверно.
?>


Хотя в PHP и нет необходимости инициализировать переменные, это считается очень хорошей практикой. Неинициализированные переменные принимают значение по умолчанию в зависимости от их типа, который определяется из контекста их первого использования: булевы принимают значение FALSE, целые и числа с плавающей точкой - ноль, строки (например, при использовании в echo) - пустую строку, а массивы становятся пустыми массивами.

Пример #1 Значения по умолчанию в не инициализированных переменных.

<?php
// Неустановленная И не имеющая ссылок (т.е. без контекста использования) переменная; выведет NULL
var_dump($unset_var);

// Булевое применение; выведет '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/double); выведет '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
// Выведет: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo = 'bar';
var_dump($unset_obj);
?>


Полагаться на значения по умолчанию не инициализированных переменных довольно проблематично при включении файла в другой файл, использующий переменную с таким же именем. Это также большой риск в системе безопасности при включенной опции register_globals. В случае работы с не инициализированной переменной вызывается ошибка уровня E_NOTICE, за исключением случая добавления элементов в не инициализированный массив. Для обнаружения инициализации переменной может быть использована языковая конструкция isset().шаблоны для dle 11.2


    Оператор ветвления условная инструкция, условный оператор

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

    Зачем нужен DNS сервер?

    Зачем нужен DNS сервер?
    DNS - система доменных имен, которая способна по запросу, содержащему имя хоста сообщить его IP адрес или по IP адресу сообщить его имя. Давайте представим, что нам необходимо обратиться к ресурсу под именем ...

    Почему опасно включать параметр register_globals.

    Почему опасно включать параметр register_globals.
    В этой статье мы очередной раз поговорим о безопасной работе сайтов и именно о том, почему опасно включать register_globals на сервере? Если вы уже сталкивались с установкой CMS DataLife Engine, то вам известно, что разработчики этого скрипта

    Кэширования снижение нагрузки на сайт

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

    Функция генерации пароля

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


Просмотров: 208
Добавлено: 5-10-2016, 17:40
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Наверх
[X]
Добро пожаловать на сайт!

Войти | Зарегистрироваться