How to get a variable name as a string in PHP



How to get a variable name as a string in PHP
PHP – Jean-Jacques Guegan
On rare occasions, you may need to retrieve a variable name as a string.

This handy little function retreives the name of the variable:

will give ‘my_var’.

I started trying to find a solution to this problem, because I needed such a function and because questions about it appeared on several mailing lists and forums:
[PHP] Is there a way to get a variable name as a string?

most people said it was not possible…
Re: [PHP] Is there a way to get a variable name as a string?
From: Rasmus Lerdorf

In PHP it is possible to use a variable if you have its name as a string :

But PHP does not natively include a way to get the name of a given variable.

This might be useful in situations where you design a function with a parameter passed by reference and you need to know which variable was sent as a parameter for this function.

The solution :
The following function retreives the variable name from a given variable:

This function has to be called with a second parameter always set to the result of the function “get_defined_vars()”:

How does it work ?
var_name compares the result of the function “get_defined_vars()” before and after modification of the variable whose name we want to find.
The initial set of defined variables passed as a parameter to var_name is first stored in “$aDefinedVars_0” and compared later.
Before modifying the value of the variable, its value is saved in $iVarSave.

is then changed to something different :

$aDefinedVars keeps track of this modification and can be compare to $aDefinedVars_0 (its initial value). The difference is the variable we modified and we can get its name as a string in the key value of the array record.

The value of the variable is restored to its initial value kept in $iVarSave and the name of the variable is returned.
Example :
The following PHP code shows the function var_name in action:

var_name can retreive the name of the variable in every case.

Application :
The most direct application of this function is, of course, a “dump” function.
Just call this “dump” function with the variable you want to monitor – do not forget to add the “get_defined_vars()” parameter…

Going further :
The function var_name can be enhanced by adding the parameter $bShowAllRef to show, if set to true, all the references relating to the variable passed as a parameter:

That’s it ! You can download the function here.

This code is free to use and published under the GPL license.

1,166 total views, no views today

Samsung Monitors With Actually Meaningful “World’s Highest” Contrast Ratios [Monitors]


The absolutely ridiculous contrast ratios you see on most display refer to their dynamic contrast ratio, a virtually meaningless spec. But Samsung’s F2380MX and F2370H have the world’s highest static contrast ratio for an LCD monitor.

The reason dynamic contrast ratio is meaningless is that it just measures that lightest and darkest a display is capable of producing, so it doesn’t say a whole lot . Static contrast ratio actually says something, because it’s the ratio between the lightest and darkest a display can show at the same time.

The 23-inch F2380MX and F2370H have a static contrast ratio of 3000:1 (which Samsung says equates to 150,000:1 dynamic contrast ratio). They’re Korea-only for now, but hopefully they make their way over here (and manufacturers start talking about static contrast ratio, instead of confusing people with overblown dynamic numbers). [Samsung via Slashgear]

525 total views, no views today