что такое var php
Что такое var php
It may be worth specifically noting, if variable names follow some kind of «template,» they can be referenced like this:
I found another undocumented/cool feature: variable member variables in classes. It’s pretty easy:
?>
This however would be reinventing the wheel when you can simply use:
Variable Class Instantiation with Namespace Gotcha:
Say you have a class you’d like to instantiate via a variable (with a string value of the Class name)
?>
The above works fine UNLESS you are in a (defined) namespace. Then you must provide the full namespaced identifier of the class as shown below. This is the case EVEN THOUGH the instancing happens in the same namespace. Instancing a class normally (not through a variable) does not require the namespace. This seems to establish the pattern that if you are using an namespace and you have a class name in a string, you must provide the namespace with the class for the PHP engine to correctly resolve (other cases: class_exists(), interface_exists(), etc.)
Sometimes you might wish to modify value of an existing variable by its name. This is easily accomplishable with a combination of using «passing by reference» and «variable variables».
$first_var = 1;
$second_var = 2;
$third_var = 3;
$which_one = array_rand(‘first’, ‘second’, ‘third’);
//Let’s consider the result is «second».
These are the scenarios that you may run into trying to reference superglobals dynamically. Whether or not it works appears to be dependent upon the current scope.
// Works as expected
var_dump ($< '_POST' >);
Note that normal variable variables will not be parsed in double-quoted strings. You’ll have to use the braces to make it work, to resolve the ambiguity. For example:
Adding an element directly to an array using variables:
Fatal error: Cannot use [] for reading
This is not a bug, you need to use the <> syntax to remove the ambiguity.
One interesting thing I found out: You can concatenate variables and use spaces. Concatenating constants and function calls are also possible.
If you want to use a variable value in part of the name of a variable variable (not the whole name itself), you can do like the following:
= 10 ;
$price_for_tuesday = 20 ;
$price_for_wednesday = 30 ;
PHP actually supports invoking a new instance of a class using a variable class name since at least version 5.2
class Foo <
public static function hello () <
echo ‘Hello world!’ ;
>
>
$my_foo = ‘Foo’ ;
$my_foo :: hello (); //prints ‘Hello world!’
?>
While not relevant in everyday PHP programming, it seems to be possible to insert whitespace and comments between the dollar signs of a variable variable. All three comment styles work. This information becomes relevant when writing a parser, tokenizer or something else that operates on PHP syntax.
/*
I am complete legal and will compile without notices or error as a variable variable.
*/
$foo = ‘magic’ ;
?>
Behaviour tested with PHP Version 5.6.19
Another use for this feature in PHP is dynamic parsing..
Due to the rather odd structure of an input string I am currently parsing, I must have a reference for each particular object instantiation in the order which they were created. In addition, because of the syntax of the input string, elements of the previous object creation are required for the current one.
// this is only a skeletal example, of course.
$object_array = array();
?>
Now, we can use basic array manipulation to get these objects out in the particular order we need, and the objects no longer are dependant on the previous ones.
I haven’t fully tested the implimentation of the objects. The scope of a variable-variable’s object attributes (get all that?) is a little tough to crack. Regardless, this is another example of the manner in which the var-vars can be used with precision where tedious, extra hard-coding is the only alternative.
Then, we can easily pull everything back out again using a basic array function: foreach.
?>
Through this, we can pull a dynamically named object out of the array it was stored in without actually knowing its name.
Переменные и типы данных в PHP
Объявление переменной
Типы данных
В отличии от большинства других языков программирования, язык РНР является слаботипизированным, что в свою очередь позволяет не требовать строгого задания типа при их объявлении. В ходе выполнения программы тип переменной может быть изменен неявным образом без специальных преобразований, что позволяет разработчику практически не задумываться о типах данных.
Опишем основные типы данных, которые поддерживаются РНР:
Boolean. Логический тип, способный принимать лишь два значения: True (истина) и False (ложь).
String. Строковый тип. Может хранить строку, максимальный размер которой составляет 2 Гбайт.
Array. Массив. Это объединение нескольких переменных под одним именем, обращаться к отдельным переменным которых можно при помощи индекса массива.
Object. Объект. Это конструкция, объединяющая несколько разнотипных переменных и методы их обработки.
Resource. Дескриптор, позволяющий оперировать тем или иным ресурсом, доступ к которому осуществляется при помощи библиотечных функций. Дескрипторы применяются при работе с файлами, базами данных, динамическими изображениями и т.д.
Null. Специальный тип, который сигнализирует о том, что переменная не была инициализирована.
Callable|Callback. Некоторые функции РНР могут принимать в качестве аргументов другие функции, которые называются функциями обратного вызова. Переменные данного типа содержат ссылки на такие функции.
Целые числа
Поскольку большинство прикладных задач носит исключительно арифметический характер, наиболее распространенными в программировании являются целые числа. Кроме того, данный тип данных наиболее быстродействующий.
Объявление целочисленных переменных может осуществляться несколькими способами:
Положительное целое число объявляется без указания перед ним знака плюс. Для объявления отрицательного числа необходимо перед ним указать символ минуса. По умолчанию числа задаются в десятичной системе счисления, однако в РНР можно объявлять переменные в восьмеричной и шестнадцатеричной системах счисления. Более подробно о целых числах и системах счисления можно узнать из статьи Целые числа (Integer)
Вещественные числа
Вещественные числа (Float или Double) имеют очень большой интервал, выйти за который практически нереально. Существуют две формы записи вещественного числа: стандартная и экспоненциальная.
При выводе под число с плавающей точкой отводится 12 символов, это значение может быть изменено при помощи директивы Precision в конфиrурационном файле php.ini.
Объявление вещественных чисел:
Более подробно о вещественных числах можно узнать из статьи Числа с плавающей точкой (Float)
Логический тип
Строки
Кавычки
Строки и строковые переменные создаются путем заключения той или иной фразы в кавычки. В РНР имеется возможность применять несколько типов кавычек, каждый вид которых имеет собственные особенности.
Двойные кавычки («. «) позволяют вместо переменных РНР подставлять их значения. Такая подстановка называется интерполяцией.
Одиночные кавычки (‘. ‘) не позволяют подставлять значение переменных.
Применение обратного слеша с рядом другими символами интерпретируется особым образом. Наиболее часто используются символы перевода строки (\n), возврат каретки (\r), символ табуляции (\t), обратный слеш (\\), двойная (\») и одинарная кавычка (\’). Размещение переменных и специальных символов (за исключением \’) в одиночных кавычках не приводит к их специальной интерпретации.
Хорошим тоном является указание границ переменной внутри строки обрамлением фигурными скобками (<. >):
Что такое var php
Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчёркивания и состоять из букв, цифр и символов подчёркивания в любом количестве. Это можно отобразить регулярным выражением: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$
Замечание: Под буквами здесь подразумеваются символы a-z, A-Z и байты от 128 до 255 ( 0x80-0xff ).
Для информации о функциях работы с переменными обращайтесь к разделу функций работы с переменными.
$ 4site = ‘ещё нет’ ; // неверно; начинается с цифры
$_4site = ‘ещё нет’ ; // верно; начинается с символа подчёркивания
$täyte = ‘mansikka’ ; // верно; ‘ä’ это (Расширенный) ASCII 228.
?>
По умолчанию переменные всегда присваиваются по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что после того как одной переменной присвоено значение другой, изменение одной из них не влияет на другую. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.
PHP также предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, «становится псевдонимом» или «указывает») на оригинальную переменную. Изменения в новой переменной отражаются на оригинале, и наоборот.
Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит ‘ Меня зовут Боб ‘:
Важно отметить, что по ссылке могут быть присвоены только именованные переменные.
function test ()
<
return 25 ;
>
Пример #1 Значения по умолчанию в неинициализированных переменных
User Contributed Notes 7 notes
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.
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.
= 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();
= 0 ; //This isset, but is empty
?>
Unset variables are also empty.
= 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.
Переменные в PHP
Что такое переменная
Например, если у нас есть HTML страница, на которой необходимо время от времени менять определённое значение, мы можем для удобства вынести это значение в переменную:
При запуске этого кода в конец тега
Создание переменной
Положить значение в переменную можно так:
Название «переменная» означает, что её значение может меняться во время выполнения скрипта:
Тем не менее, веб-разработчики часто говорят «объявить переменную» вместо «создать переменную».
Также вместо «положить в переменную значение» часто говорят «присвоить значение».
Правила именования переменных
Вывод переменной
Вывести переменную можно с помощью команды echo :
При этом команда echo позволяет вывести на экран сразу несколько значений:
В примере выше мы передали в echo 2 значения, разделив их запятой.
Так мы можем передать сколько угодно значений:
Проверка значения переменной
Команда echo не всегда удобна для проверки значения переменной.
К примеру, при попытке вывода пустой строки на экран не выведется абсолютно ничего. И непонятно, действительно ли она выводится или нет (например из-за ошибки в коде).
Поэтому для проверки содержимого переменной лучше использовать функцию var_dump() :
Как видно из примера выше, функция var_dump() выводит содержимое переменной, её длину и тип.
Типы данных мы подробно рассмотрим в отдельном уроке.
Удаление переменной
Удалить существующую переменную можно с помощью функции unset() :
А теперь пришло время немного попрактиковаться.
Задача №1
Хочу ещё раз обратить ваше внимание, что это решение не является единственно верным. К примеру, следующий код приведёт к такому же результату:
Задача №2
1. Создайте переменную title и присвойте ей какое-нибудь значение.
2. Выведите значение переменной на экран внутри тега h1.
3. Измените значение переменной на какое-нибудь другое.
4. Снова выведите переменную на экран, теперь уже внутри тега div.
5. Удалите переменную title.
Что такое var php
Как и в любом другом языке программирования, в PHP существует такое понятие, как переменная.
При программировании на PHP можно не скупиться на объявление новых переменных. Принципы экономии памяти, которые были актуальны несколько лет назад, сегодня в расчет не принимаются. Однако, при хранении в переменных больших объемов памяти, лучше удалять неиспользуемые переменные, используя оператор Unset.
В официальной документации PHP указано, что имя переменной может состоять не только из букв «Латиницы» и цифр, но также и из любых символов, код ASCII которых старше 127, — в частности, и из символов кириллицы, то есть «русских» букв! Однако не рекоммендуется применять кириллицу в именах переменных — хотя бы из-за того, что в различных кодировках ее буквы имеют различные коды. Впрочем, поэксперементируйте и делайте так, как вам будет удобно.
Можно сказать, что переменные в PHP — это особые объекты, которые могут содержать в буквальном смысле все, что угодно.
Приведем некоторые примеры переменных в PHP:
$ 4site = ‘not yet’ ; // неверно; начинается с цифры
$_4site = ‘not yet’ ; // верно; начинается с символа подчеркивания
$tдyte = ‘mansikka’ ; // верно; ‘д’ это (Дополнительный) ASCII 228.
?>
Отличительным преимуществом PHP является то, что в PHP не нужно ни описывать переменные явно, ни указывать их тип. Интерпретатор все это делает сам. Однако иногда он может ошибаться (например, если в текстовой строке на самом деле задано десятичное число), поэтому изредка возникает необходимость явно указывать, какой же тип имеет то или иное выражение.
Чуть чаще возникает потребность узнать тип переменной (например, переданной в параметрах функции) прямо во время выполнения программы.
А тепрь посмотрим, какие же типы данных понимает PHP.