php вывести имя переменной

Как получить имя переменной в виде строки в PHP?

Скажем, у меня есть этот код PHP:

тогда мне нужна такая функция:

Есть идеи как этого добиться? Это вообще возможно в PHP?

Решение

Вы могли бы использовать get_defined_vars () чтобы найти имя переменной, значение которой совпадает со значением, которое вы пытаетесь найти. Очевидно, это не всегда будет работать, поскольку разные переменные часто имеют одинаковые значения, но это единственный способ, которым я могу придумать.

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

Другие решения

Я не мог придумать способ сделать это эффективно, но я придумал это. Это работает, для ограниченного использования ниже.

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

Вы могли бы подумать об изменении вашего подхода и использовании имени переменной переменной?

тогда вы могли бы просто

Никто, кажется, не упомянул фундаментальные причины Зачем это а) сложно и б) неразумно

Для этого вы можете использовать этот фрагмент вверху функции отладки:

Я сделал функцию проверки по причинам отладки. Это похоже на print_r () на стероидах, очень похоже на Krumo, но немного более эффективно на объектах. Я хотел добавить определение имени var и получил это, вдохновленный постом Ника Престы на этой странице. Он обнаруживает любое выражение, переданное в качестве аргумента, а не только имена переменных.

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

inspect () — это функция, которая обнаружит переданное выражение.

Вот пример функции инспектора (и моего класса dInspect) в действии:

Тексты на этой странице на испанском, но код лаконичен и действительно прост для понимания.

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

@Alexandre — короткое решение

Это именно то, что вы хотите — это готовая к использованию функция «копировать и вставить», которая отображает имя данной переменной:

ИСПОЛЬЗОВАНИЕ: print_var_name ($ FooBar)

ПОДСКАЗКА
Теперь вы можете переименовать функцию, и она все равно будет работать, а также использовать функцию несколько раз в одной строке! Благодаря @Cliffordlife

Источник

Как получить имя переменной в виде строки в PHP?

скажем, у меня есть этот PHP код:

мне тогда нужна такая функция:

есть идеи, как этого достичь? Возможно ли это в PHP?

22 ответов

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

Edit: чтобы быть ясным, нет хорошего способа сделать это в PHP, что, вероятно, потому, что вам не нужно этого делать. Вероятно, есть лучшие способы сделать то, что вы пытаетесь сделать.

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

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

вы можете рассмотреть возможность изменения своего подхода и использования имени переменной переменной?

тогда вы могли бы просто

кажется, никто не упомянул основных причин почему это а) тяжело и Б) неразумно:

теперь я понимаю желание этого для отладки (хотя некоторые из предлагаемых применений выходят далеко за рамки этого), но в качестве обобщенного решения это на самом деле не так полезно, как вы могли бы подумать: если ваша функция отладки говорит, что ваша переменная называется «$file», это может быть любая из десятков переменных «$file «в вашем коде или переменная, которую вы назвали «$filename», но передаете функции, параметр которой называется «$file».

для этого вы можете использовать этот фрагмент в верхней части функции отладки:

Я сделал функцию проверки по причинам отладки. Это похоже на print_r () на стероидах, как и Krumo, но немного более эффективно на объектах. Я хотел добавить обнаружение имени var и вышел с этим, вдохновленный сообщением Ника Преста на этой странице. Он обнаруживает любое выражение, переданное в качестве аргумента, а не только имена переменных.

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

вот пример функции inspector (и моего класса dInspect) в действие:

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

Источник

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 6 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 нам нужен удобный способ хранения, чтобы мы могли легко получить доступ к ним и при необходимости ссылаться на них.

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

Присвоение имени и создание переменной в PHP

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

Присвоение значения переменной РНР

Начнем с присвоения слова « Круг » переменной с именем myShape :

Мы объявили переменную с именем myShape и присвоили ей строковое значение « Круг «. Аналогичным образом можно объявить переменную, содержащую численное значение:

Доступ к PHP значениям переменных

Это приведет к следующему выводу в браузере:

Точно так же можно отобразить значение переменной myShape :

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

То, что нам нужно в этом случае выводится следующим образом:

Можно обойти эту проблему, поставив фигурные скобки (< >) вокруг имени переменной, чтобы экранировать ее от других символов:

Что дает нам желаемый результат:

Изменение типа РНР переменной

PHP типы переменных: целое, вещественное, логическое, массив, объект и строка. Для начала рассмотрим изменение типа переменной после ее создания.

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

Проверка установлена ли переменная

Источник

PHP5 Переменные

Переменные являются контейнерами для хранения информации.

PHP Создание переменных

Пример

Примечание: когда Вы присваиваете текстовое значение к переменной, ставте кавычки вокруг значения.

Примечание: в отличие от других языков программирования, PHP не имеет команды для объявления переменной. Она создается в момент, когда Вы присваиваете значение.

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

PHP Переменные

Правила для PHP переменных:

Помните, что имена переменных в PHP чувствительны к регистру!

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

Следующий пример показывает, как вывести текст и переменную:

Пример

Следующий пример точно имеет, такой же результат, что и предыдущий пример:

Пример

Следующий пример будет выводить сумму двух переменных:

Пример

Примечание: Вы узнаете больше в следующей главе о заявлении echo и как вывести данные на экран.

PHP Свободно типизированный язык

В приведенном выше примере обратите внимание, мы можем не объявлять имя PHP, так как, тип данных являются переменными.

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

В других языках, таких как C, C++ и Java, программист должен объявить имя и тип переменной перед ее использованием.

PHP Область переменных

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

PHP имеет три различных области:

PHP Глобальная и локальная область

Переменная, объявленная внешней функцией имеет GLOBAL SCOPE (глобальную область) и может только быть доступна вне функции:

Пример

Переменная, объявленная внутри функции, имеет локальную область и можете только быть доступны в этой функции:

Пример

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

PHP Ключевое слово global

Ключевое слово global используется для доступа к глобальной переменной из функции.

Для этого используется ключевое слово global перед переменными (внутри функции):

Пример

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

Пример

PHP Ключевое слово static

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

Для этого используйте ключевое слово static при объявлении переменной:

Пример

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

Примечание: переменные по-прежнему локальны для функции.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *