Как присвоить функцию переменной в php?
Для присвоения функции переменной в PHP необходимо использовать ключевое слово function :
$function = function ($a, $b) return $a + $b; >; echo $function(2, 3); // => 5
Создание переменных в PHP
Если Вы изучаете PHP, то, надеюсь, что смысл и назначение переменных в языках программирования понимаете. Поэтому не буду объяснять всё это, и сразу приступим к созданию переменных в PHP.
Давайте сразу создадим переменную и выведем её:
Здесь мы объявляем переменную x, которой присваиваем значение 15. Затем мы выводим её. Обратите внимание, что переменная всегда предворяется знаком $.
Теперь создадим ещё одну переменную:
Тут мы создаём переменную 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. Для этого напишем такой код:
Здесь мы объявили две переменных в PHP, присвоили им значения, посчитали их сумму, а потом вывели результат.
Думаю, в этой статье достаточно знаний для начала. В следующей статье мы разберём оператор условия IF, а также узнаем об одной очень важной функции — isset().

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 20 ):
Спасибо за статью, Михаил, но я позволю дополнить, что существует также тип данных NULL, т.е когда мы имеем пустую строку.
NULL — это не пустая строка. NULL — это пустой объект, не инициализированный объект. А пустая строка — это инициализированный объект, поэтому NULL она не является.
Михаил. Для меня это всё очень сложно. Хочу скачать готовый скрипт ФОРУМА, но не могу понять, куда вставлять свои ссылки (при необходимости) или рекламные банеры. Веть, когда создаеться новая тема на форуме, то для неё создаеться новая страница или какая-то переменная. Как её узнать на готовом скрипте форума?
Есть движок для форума — PHPBB. Скачайте его, установите и в Admin-панели можно сделать практически всё, что угодно.
Скачал. Устанавливаю. Что нужно указать здесь?: Имя сервера БД или DSN: DSN — имя источника данных при установке с использованием ODBC. В PostgreSQL используйте имя localhost для соединения с локальным сервером через сокет домена UNIX или адрес 127.0.0.1 для соединения через TCP. Для SQLite, введите полный путь к файлу базы данных.
Имя сервера: localhost
Спасибо за уроки! Впринципе мне пока все понятно, только вот когда я php код пишу, ничего не отображаеться в браузере! Сохроняю я все в расширении .php
Потому что открывать надо правильно. Например, так: http://mysite.local А Вы же 99.9% открываете что-то наподобие этого: file:///Z:\home.
Блин, точно! Спасибо! Кстате хочу посоветовать удобный редактор которым я пользуюсь, называется он — SciTE! Михаил, у меня еще один вопрос, обязательно ли делать отступы, например $s(отступ)=(отступ)значение. .
Я не сказал бы, что php труднее html. Я очень хорошо понимаю этот язык и у меня все получается. Как сказал Михаил, нужно практикаваться: я так и делаю. Спасибо тебе Михаил.
Добрый день! А как можно сделать переменную на лету. Например запрос SQL выдал значение DATA1 и DATA2. И мне нужно сделать что бы у меня появилась переменная $data1 со значением DATA2. Это возможно?
С помощью символьных переменных да: http://myrusakov.ru/ssylochnye-peremennye-php.html
Думаю это немного не то, что мне нужно. Или я просто не понял. У меня в базе хранятся название переменной и её значение. Та вот мне нужно получить именно переменную с нужным мне названием. Например вышло в запросе имя plata, мне нужно как то сделать переменную с именем $plata, а не с значением.
Вышел из положения так: define(«$row[constanta]», «$row[znachenie]»); echo NAINENOVANIE; В принципе меня константа тоже устраивает, но хотелось бы еще уметь переменные так создавать.
я новичок в пшп. я не очень понимаю что такое интерпретатор PHP . объясните пожалуста.
PHP — один из таких предпроцессоров. PHP-скрипты, интерпретатором которых является PHP, размещают, как правило, в файлах с расширением php. Сам веб-сервер настраивается таким образом, что при запросе клиентом файла с расширением php, его содержимое не сразу отправляется адресату запроса, а сначала обрабатывается интерпретатором PHP. PHP ищет в интерпретируемом файле конструкции вида: внутри которых предполагается размещение PHP-кода. Своего рода, интерпретатор — обработчик кода.
Здравствуйте и спасибо за такой хороший сайт. Не знал где написать начал тут. Я не давно начал изучать PHP и кое чему научился. Но у меня по другому все в голове устроено. Не знаю забегаю в перед или правильно делаю. Не давно создал свой первый сайт на html, css . Открыл PHP и сделал просто include все в общий php . Вопрос такой, есть ли у вас уроки чтобы начать уже создавать свою админ панель для сайта, чтобы там добавлять фото в контент сайта менять тексты и тогдалее. Так как каждый раз менять с html документа и добавлять там теги для фото и тогдалее долго. Если есть то буду рад. Хочется с этой стороны попробовать и не пользоваться готовыми админками для сайтов. Или должен уметь создать БД а после уже админ панель? Направьте пожалуйста. Ведь я почти ноль на PHP. Но если есть урок я разберусь я уверен. Заранее спасибо
Сначала научитесь работать с базой, затем создайте базу, в ней создайте таблицы, каждая для конкретной области и элемента сайта. Потом сверстайте админку себе и с помощью php через нее вносите изменения в таблицы базы, в которой содержится контент сайта, а на сайте лишь выводите содержимое базы. Делов на несколько часов, хотя Вы в 2014 писали
Однако результат можно вывести и немного другим путем:
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Урок 3. Переменные в PHP

1. Как создать переменную PHP?
3. Вывод переменных PHP
3. Операции с переменными PHP
Переменные в php — это некий информационный контейнер, который может содержать в себе различные типы данных (текст, цифры, массивы и так далее). В целом переменные позволяют создавать, хранить, изменять, а в дальнейшем оперативно обращаться к информации, заданной в них.
Как создать переменную в PHP
Вначале переменные содержат знак $ (доллар) — обозначение использования переменной, потом буквы латинского алфавита (от a до z и маленькие и большие), в конце могу содержать цифры. Также в названии допускается использование нижнего подчёркивания (не в конце).
Как можно называть переменные:
$var
$variable
$year1945
$_variable
Как нельзя называть переменные:
$1 — состоит только из цифры
$1var — нельзя начинать название переменной с цифры
$/var — из дополнительных символов допускается только нижнее подчёркивание _
$переменная — кириллица разрешена документацией php, но не рекомендуема
$var iable — нельзя использовать пробелы
| Пробелы, какие-либо знаки, кроме нижнего подчёркивания — запрещены. Кириллицу (русские буквы) в документации к php использовать разрешено. НО далеко не везде подобные переменные будут правильно интерпретированы, поэтому используйте только латинницу. |
Каждой переменной присваивается значение. Для присвоения значения используется знак = (равно). В течение обработки скрипта значение переменной может неоднократно меняться в зависимости от разных условий.
| Имена переменных чувствительны к регистру букв: например, $name — не то же самое, что $Name или $NAME |
Вывод переменных PHP
Отдельно следует разобрать то, как отобразить переменные при помощи операторов вывода, работу которых мы разобрали в прошлом уроке Создание странцы PHP. Операторы вывода. . Ниже приведу ряд наглядных примеров с комментариями.
Операции с переменными PHP
Арифметические операции в PHP
В случае с числовыми значениями можно проводить арифметические операции: сложение, вычитание, умножение и так далее.
-$a (отрицание) Смена знака $a.
$a + $b (сложение) Сумма $a и $b.
$a — $b (вычитание) Разность $a и $b.
$a * $b (умножение) Произведение $a и $b.
$a / $b (деление) Частное от деления $a на $b.
$a % $b (деление по модулю) Целочисленный остаток от деления $a на $b.
Рассмотрим примеры
Операции инкремента и декремента в PHP
Данные операции пригодятся в основном при построении циклов, о которых поговорим чуть позже.
Префиксный — операторы, прописанные ПЕРЕД переменной (—$a; ++$a). Возвращают значение переменной до изменений.
Постфиксный — операторы, прописываемые после переменной ($a—; $a—). Возвращают значение переменной с изменениями.
Инкремент — увеличения значения.
Декремент — уменьшение значения.
++$a Префиксный инкремент. Увеличивает $a на единицу и возвращает значение $a.
$a++ Постфиксный инкремент. Возвращает значение $a, а затем увеличивает $a на единицу.
—$a Префиксный декремент. Уменьшает $a на единицу и возвращает значение $a.
$a— Постфиксный декремент. Возвращает значение $a, а затем уменьшает $a на единицу.
| Булевы типы (это значения типа Правда или Неправда — True False) не подлежат инкрементированию и декрементированию. А в случае если в значении переменных символы, при инкрементировании и декрементировании будет выводить ближайшее значение по таблице символов. Например: . X,Y,Z,AA,AB,AC и так далее. |
Операции присвоения в PHP
Базовый оператор выглядит как =. На первый взгляд может показаться, что это оператор равно. На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения, (т.е. устанавливается результирующим значением). Комбинированные операторы — это такие операторы, которые позволяют использовать предыдущие значения переменных для последующих операций (дописывать в строковую переменную (с текстом) или складывать числовые значения).
Существуют также операции сравнения и логические, но о них мы поговорим в следующих уроках. Постараюсь сразу не пугать Вас большим объёмом информации!)
PHP: Переменные
Когда в программе необходимо сохранить значение, чтобы использовать его позже, это значение присваивается переменной. Переменная — это просто символьное имя для значения, которое обеспечивает возможность получить значение по имени, то есть, когда в программе указывается имя переменной вместо неё подставляется значение.
При использовании переменных необходимо учитывать следующие правила:
- В PHP не нужно объявлять переменную перед тем как начать её использовать.
- Переменные в PHP представлены знаком доллара с последующим именем переменной.
- Имена переменных чувствительны к регистру символов, это означает, что имена переменных $myVar , $MYVAR или $MyVar будут считаться, как имена трёх различных переменных.
Инициализация — это присвоение начального значения переменной. Присвоить какое-либо значение переменной можно с помощью оператора присваивания, который обозначается символом равно (=):
Переменные в PHP не имеют типа, поэтому переменной может быть присвоено сначала значение одного типа, а затем этой же переменной может быть присвоено значение другого типа:
Так как вместо имени переменной подставляется её значение, можно копировать значение из одной переменной в другую:
В этом примере переменной $num1 присваивается число 10. Затем переменной $num2 присваивается значение переменной $num1 . Несмотря на то, что переменные $num1 и $num2 имеют одинаковое значение, каждая из них содержит собственную копию числа 10, поэтому изменение значения одной из них не повлияет на другую:
Неинициализированная переменная, то есть такая, которой не было присвоено никакого значения, принимает значение по умолчанию в зависимости от контекста её использования:
- При работе со строками — пустую строку.
- При работе с числами — число нуль.
- Там, где ожидается булево значение — FALSE .
- При работе с переменной в качестве массива — пустой массив.
- При работе с переменной в качестве объекта — объект типа stdClass .
- Без контекста использования — специальное значение NULL .
Зачем нужны переменные?
Переменные помогают сделать программный код понятнее. Рассмотрим небольшой пример:
Имеющиеся здесь числа могут означать что угодно. Чтобы стало понятнее, что здесь суммируется, можно присвоить 2.42 в качестве значения переменной $candy_price (цена конфет), а 4.33 — в качестве значения переменной $oil_price (цена масла):
Теперь вместо того, чтобы вспоминать, что эти значения означают, можно увидеть, что в сценарии складывается цена конфет с ценой масла.
Переменные также помогают экономить время при написании и отладке сценария. Вместо того, чтобы везде использовать одно и тоже фактическое значение (литерал), его можно присвоить в начале сценария переменной, и далее в остальном коде сценария вместо литерала использовать переменную. Если позднее будет принято решение об изменении значения, то вносить изменения в код придется не в нескольких местах, а только в одном месте — там, где переменной присваивалось значение.
Переменные переменных
В PHP есть возможность использовать значение одной переменной в качестве имени другой переменной. Переменные, которые в качестве имени используют значение переменной называются переменные переменных .
Чтобы использовать значение переменной в качестве имени переменной, необходимо поставить дополнительный знак доллара перед именем переменной, значение которой будет использоваться в качестве имени:
Как в php правильно присвоить переменной строку

Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчеркивания и состоять из букв, цифр и символов подчеркивания в любом количестве. Это можно отобразить регулярным выражением: ‘[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*’
Замечание: Под буквами здесь подразумеваются символы a-z, A-Z, и байты от 127 до 255 (0x7f-0xff).
Замечание: $this — это особая переменная, которой нельзя ничего присваивать.
По умолчанию, переменные всегда присваиваются по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что, после того как одной переменной присвоено значение другой, изменение одной из них не влияет на другую. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.
PHP также предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, «становится псевдонимом» или «указывает») на оригинальную переменную. Изменения в новой переменной отражаются на оригинале, и наоборот.
Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит ‘Меня зовут Боб’:
Важно отметить, что по ссылке могут быть присвоены только именованные переменные.
Хотя в PHP и нет необходимости инициализировать переменные, это считается очень хорошей практикой. Неинициализированные переменные принимают значение по умолчанию в зависимости от их типа, который определяется из контекста их первого использования: булевы принимают значение FALSE, целые и числа с плавающей точкой — ноль, строки (например, при использовании в echo) — пустую строку, а массивы становятся пустыми массивами.
Пример #1 Значения по умолчанию в неинициализированных переменных
Полагаться на значения по умолчанию неинициализированных переменных довольно проблематично при включении файла в другой файл, использующий переменную с таким же именем. Это также большой риск в системе безопасности при включенной опции register_globals. В случае работы с неинициализированной переменной вызывается ошибка уровня E_NOTICE, за исключением случая добавления элементов в неинициализированный массив. Для обнаружения инициализации переменной может быть использована языковая конструкция isset().
Похожие публикации:
- Как сделать обтекание текста в html
- Как сделать полупрозрачный фон в css
- Как сделать резервную копию whatsapp
- Как сделать страницу 404 для сайта html
Каждой строке файла txt присвоить переменную php
Хочу сгенерировать вывод строки php в которых будут записаны переменные. Имеется файл txt со следующим текстом:
[10.8.1.42] comp-vm3 [10.8.1.49] comp-vm2 [10.8.1.62] ksc
В php считываю файл txt и разделяю на строки через explode :
"; > > fclose($fd); ?>
Получаю следующий вид:
[10.8.1.42] comp-vm3 [10.8.1.49] comp-vm2 [10.8.1.62] ksc
Хочу теперь каждой строке присвоить переменную $a и $b и записать в строку:
бла бла бла бла бла бла
Чтобы потом выводилось по типу:
бла бла бла бла бла бла
бла бла бла бла бла бла
бла бла бла бла бла бла
Как в php присвоить переменной строку
It may be worth specifically noting, if variable names follow some kind of «template,» they can be referenced like this:
// Given these variables .
$nameTypes = array( «first» , «last» , «company» );
$name_first = «John» ;
$name_last = «Doe» ;
$name_company = «PHP.net» ;
// Then this loop is .
foreach( $nameTypes as $type )
print $ < "name_ $type " >. «\n» ;
// . equivalent to this print statement.
print » $name_first \n $name_last \n $name_company \n» ;
?>
This is apparent from the notes others have left, but is not explicitly stated.
4 years ago
The feature of variable variable names is welcome, but it should be avoided when possible. Modern IDE software fails to interpret such variables correctly, regular find/replace also fails. It’s a kind of magic 🙂 This may really make it hard to refactor code. Imagine you want to rename variable $username to $userName and try to find all occurrences of $username in code by checking «$userName». You may easily omit:
$a = ‘username’;
echo $$a;
1 year ago
In addition, it is possible to use associative array to secure name of variables available to be used within a function (or class / not tested).
This way the variable variable feature is useful to validate variables; define, output and manage only within the function that receives as parameter
an associative array :
array(‘index’=>’value’,’index’=>’value’);
index = reference to variable to be used within function
value = name of the variable to be used within function
$vars = [ ‘id’ => ‘user_id’ , ’email’ => ‘user_email’ ];
function validateVarsFunction ( $vars )
//$vars[‘id’]=34; // define allowed variables
$user_id = 21 ;
$user_email = ’email@mail.com’ ;
echo $vars [ ‘id’ ]; // prints name of variable: user_id
echo $< $vars [ 'id' ]>; // prints 21
echo ‘Email: ‘ .$< $vars [ 'email' ]>; // print email@mail.com
// we don’t have the name of the variables before declaring them inside the function
>
?>
8 years ago
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:
$price_for_monday = 10 ;
$price_for_tuesday = 20 ;
$price_for_wednesday = 30 ;
$price_for_today = $< 'price_for_' . $today >;
echo $price_for_today ; // will return 20
?>
16 years ago
One interesting thing I found out: You can concatenate variables and use spaces. Concatenating constants and function calls are also possible.
define ( ‘ONE’ , 1 );
function one () <
return 1 ;
>
$one = 1 ;
$ < "foo $one " >= ‘foo’ ;
echo $foo1 ; // foo
$ < 'foo' . ONE >= ‘bar’ ;
echo $foo1 ; // bar
$ < 'foo' . one ()>= ‘baz’ ;
echo $foo1 ; // baz
?>
This syntax doesn’t work for functions:
// You’ll have to do:
$func = «php $foo » ;
$func ();
?>
Note: Don’t leave out the quotes on strings inside the curly braces, PHP won’t handle that graciously.
13 years ago
PHP actually supports invoking a new instance of a class using a variable class name since at least version 5.2
class Foo public function hello () echo ‘Hello world!’ ;
>
>
$my_foo = ‘Foo’ ;
$a = new $my_foo ();
$a -> hello (); //prints ‘Hello world!’
?>
Additionally, you can access static methods and properties using variable class names, but only since PHP 5.3
class Foo public static function hello () echo ‘Hello world!’ ;
>
>
$my_foo = ‘Foo’ ;
$my_foo :: hello (); //prints ‘Hello world!’
?>
21 years ago
The ‘dollar dereferencing’ (to coin a phrase) doesn’t seem to be limited to two layers, even without curly braces. Observe:
$one = «two» ;
$two = «three» ;
$three = «four» ;
$four = «five» ;
echo $$$ $one ; //prints ‘five’.
?>
This works for L-values as well. So the below works the same way:
$one = «two» ;
$ $one = «three» ;
$$ $one = «four» ;
$$$ $one = «five» ;
echo $$$ $one ; //still prints ‘five’.
?>
NOTE: Tested on PHP 4.2.1, Apache 2.0.36, Red Hat 7.2
21 years ago
You may think of using variable variables to dynamically generate variables from an array, by doing something similar to: —
foreach ( $array as $key => $value )
$ $key = $value ;
>
?>
This however would be reinventing the wheel when you can simply use:
extract ( $array , EXTR_OVERWRITE );
?>
Note that this will overwrite the contents of variables that already exist.
Extract has useful functionality to prevent this, or you may group the variables by using prefixes too, so you could use: —
$array =array( «one» => «First Value» ,
«two» => «2nd Value» ,
«three» => «8»
);
extract ( $array , EXTR_PREFIX_ALL , «my_prefix_» );
?>
This would create variables: —
$my_prefix_one
$my_prefix_two
$my_prefix_three
containing: —
«First Value», «2nd Value» and «8» respectively
21 years ago
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.
Normally, you won’t need something this convolute. In this example, I needed to load an array with dynamically named objects — (yes, this has some basic Object Oriented programming, please bare with me..)
// this is only a skeletal example, of course.
$object_array = array();
// assume the $input array has tokens for parsing.
foreach ( $input_array as $key => $value ) <
// test to ensure the $value is what we need.
$obj = «obj» . $key ;
$ $obj = new Obj ( $value , $other_var );
Array_Push ( $object_array , $ $obj );
// etc..
>
?>
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.
//.
foreach( $array as $key => $object )
echo $key . » — » . $object -> print_fcn (). »
\n» ;
?>
Through this, we can pull a dynamically named object out of the array it was stored in without actually knowing its name.
