PHP 7.2.0 Release Candidate 2 Released

Variable variables

Sometimes it is convenient to be able to have variable variable names. That is, a variable name which can be set and used dynamically. A normal variable is set with a statement such as:

<?php
$a 
'hello';
?>

A variable variable takes the value of a variable and treats that as the name of a variable. In the above example, hello, can be used as the name of a variable by using two dollar signs. i.e.

<?php
$$a 'world';
?>

At this point two variables have been defined and stored in the PHP symbol tree: $a with contents "hello" and $hello with contents "world". Therefore, this statement:

<?php
echo "$a ${$a}";
?>

produces the exact same output as:

<?php
echo "$a $hello";
?>

i.e. they both produce: hello world.

In order to use variable variables with arrays, you have to resolve an ambiguity problem. That is, if you write $$a[1] then the parser needs to know if you meant to use $a[1] as a variable, or if you wanted $$a as the variable and then the [1] index from that variable. The syntax for resolving this ambiguity is: ${$a[1]} for the first case and ${$a}[1] for the second.

Class properties may also be accessed using variable property names. The variable property name will be resolved within the scope from which the call is made. For instance, if you have an expression such as $foo->$bar, then the local scope will be examined for $bar and its value will be used as the name of the property of $foo. This is also true if $bar is an array access.

Caution

Further dereferencing a variable property that is an array has different semantics between PHP 5 and PHP 7. The PHP 7.0 migration guide includes further details on the types of expressions that have changed, and how to place curly braces to avoid ambiguity.

Curly braces may also be used, to clearly delimit the property name. They are most useful when accessing values within a property that contains an array, when the property name is made of mulitple parts, or when the property name contains characters that are not otherwise valid (e.g. from json_decode() or SimpleXML).

Example #1 Variable property example

<?php
class foo {
    var 
$bar 'I am bar.';
    var 
$arr = array('I am A.''I am B.''I am C.');
    var 
$r   'I am r.';
}

$foo = new foo();
$bar 'bar';
$baz = array('foo''bar''baz''quux');
echo 
$foo->$bar "\n";
echo 
$foo->{$baz[1]} . "\n";

$start 'b';
$end   'ar';
echo 
$foo->{$start $end} . "\n";

$arr 'arr';
echo 
$foo->{$arr[1]} . "\n";

?>

The above example will output:


I am bar.
I am bar.
I am bar.
I am r.

Warning

Please note that variable variables cannot be used with PHP's Superglobal arrays within functions or class methods. The variable $this is also a special variable that cannot be referenced dynamically.

add a note add a note

User Contributed Notes 38 notes

up
329
userb at exampleb dot org
7 years ago
<?php

 
//You can even add more Dollar Signs

 
$Bar = "a";
 
$Foo = "Bar";
 
$World = "Foo";
 
$Hello = "World";
 
$a = "Hello";

 
$a; //Returns Hello
 
$$a; //Returns World
 
$$$a; //Returns Foo
 
$$$$a; //Returns Bar
 
$$$$$a; //Returns a

 
$$$$$$a; //Returns Hello
 
$$$$$$$a; //Returns World

  //... and so on ...//

?>
up
12
herebepost (ta at ta) [iwonderr] gmail dot com
1 year ago
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.

<?php

    $foo
= 'bar';
    $

   
/*
        I am complete legal and will compile without notices or error as a variable variable.
    */
       
$foo = 'magic';

    echo
$bar; // Outputs magic.

?>

Behaviour tested with PHP Version 5.6.19
up
51
Anonymous
12 years ago
It may be worth specifically noting, if variable names follow some kind of "template," they can be referenced like this:

<?php
// 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.
up
5
jefrey.sobreira [at] gmail [dot] com
2 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:

<?php
$price_for_monday
= 10;
$price_for_tuesday = 20;
$price_for_wednesday = 30;

$today = 'tuesday';

$price_for_today = ${ 'price_for_' . $today};
echo
$price_for_today; // will return 20
?>
up
25
mason
7 years ago
PHP actually supports invoking a new instance of a class using a variable class name since at least version 5.2

<?php
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

<?php
class Foo {
   public static function
hello() {
      echo
'Hello world!';
   }
}
$my_foo = 'Foo';
$my_foo::hello(); //prints 'Hello world!'
?>
up
10
antony dot booth at nodomain dot here
15 years ago
You may think of using variable variables to dynamically generate variables from an array, by doing something similar to: -

<?php
foreach ($array as $key => $value)
{
  $
$key= $value;
}

?>

This however would be reinventing the wheel when you can simply use:

<?php
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: -

EXTR_PREFIX_ALL

<?php
$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
up
7
nullhility at gmail dot com
9 years ago
It's also valuable to note the following:

<?php
${date("M")} = "Worked";
echo ${
date("M")};
?>

This is perfectly legal, anything inside the braces is executed first, the return value then becomes the variable name. Echoing the same variable variable using the function that created it results in the same return and therefore the same variable name is used in the echo statement. Have fun ;).
up
18
J. Dyer
15 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..)

<?php
  
include("obj.class");

  
// 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.

<?php
//...
  
foreach($array as $key=>$object){

      echo
$key." -- ".$object->print_fcn()." <br/>\n";

   }
// end foreach  

?>

Through this, we can pull a dynamically named object out of the array it was stored in without actually knowing its name.
up
6
chrisNOSPAM at kampmeier dot net
16 years ago
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:

<?php
$varname
= "foo";
$foo = "bar";

print $
$varname// Prints "bar"
print "$$varname"// Prints "$foo"
print "${$varname}"; // Prints "bar"
?>
up
12
dlorre at yahoo dot com
7 years ago
Adding an element directly to an array using variables:

<?php
$tab
= array("one", "two", "three") ;
$a = "tab" ;
$
$a[] ="four" ; // <==== fatal error
print_r($tab) ;
?>
will issue this error:

Fatal error: Cannot use [] for reading

This is not a bug, you need to use the {} syntax to remove the ambiguity.

<?php
$tab
= array("one", "two", "three") ;
$a = "tab" ;
${
$a}[] =  "four" ; // <==== this is the correct way to do it
print_r($tab) ;
?>
up
7
Nathan Hammond
9 years ago
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.

<?php

$_POST
['asdf'] = 'something';

function
test() {
   
// NULL -- not what initially expected
   
$string = '_POST';
   
var_dump(${$string});

   
// Works as expected
   
var_dump(${'_POST'});

   
// Works as expected
   
global ${$string};
   
var_dump(${$string});

}

// Works as expected
$string = '_POST';
var_dump(${$string});

test();

?>
up
6
nils dot rocine at gmail dot com
5 years ago
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)

<?php

class Foo
{
    public function
__construct()
    {
        echo
"I'm a real class!" . PHP_EOL;
    }
}

$class = 'Foo';

$instance = new $class;

?>

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.)

<?php

namespace MyNamespace;

class
Foo
{
    public function
__construct()
    {
        echo
"I'm a real class!" . PHP_EOL;
    }
}

$class = 'MyNamespace\Foo';

$instance = new $class;

?>
up
6
php at ianco dot co dot uk
8 years ago
<?php
// $variable-name = 'parse error';
// You can't do that but you can do this:
$a = 'variable-name';
$
$a = 'hello';
echo
$variable-name . ' ' . $$a; // Gives     0 hello
?>

For a particular reason I had been using some variable names with hyphens for ages. There was no problem because they were only referenced via a variable variable. I only saw a parse error much later, when I tried to reference one directly. It took a while to realise that illegal hyphens were the cause because the parse error only occurs on assignment.
up
5
dnl at au dot ru
16 years ago
By the way...
Variable variables can be used as pointers to objects' properties:

<?php
class someclass {
  var
$a = "variable a";
  var
$b = "another variable: b";
  }

$c = new someclass;
$d = "b";
echo
$c->{$d};
?>

outputs: another variable: b
up
5
the_tevildo at yahoo dot com
9 years ago
This is a handy function I put together to allow variable variables to be used with arrays.

To use the function, when you want to reference an array, send it in the form 'array:key' rather than 'array[key]'.

For example:

<?php

function indirect ($var, $value)     // Replaces $$var = $value
{
  
$var_data = $explode($var, ':');
   if (isset(
$var_data[1]))
   {
      ${
$var_data[0]}[$var_data[1]] = $value;
   }
   else
   {
      ${
$var_data[0]} = $value;
   }
}

$temp_array = array_fill(0, 4, 1);
$temp_var = 1;
$int_var_list = array('temp_array[2]', 'temp_var');

while (list(
$key, $var_name) = each($int_var_list))
{
  
//  Doesn't work - creates scalar variable called "$temp_array[2]"
  
$$var_name = 0;
}

var_dump($temp_array);
echo
'<br>';
var_dump($temp_var);
echo
'<br>';

//  Does work!

$int_var_list = array('temp_array:2', 'temp_var');

while (list(
$key, $var_name) = each($int_var_list))
{
  
indirect($var_name, 2);
}

var_dump($temp_array);
echo
'<br>';
var_dump($temp_var);
echo
'<br>';
?>
up
1
coviex at gmail dot com
4 years ago
In 5.4 "Dynamic class references require the fully qualified class name (with the namespace in it) because at runtime there is no information about the current namespace." is still true.
Neither simple class name nor containing subnamespace works.
Initial source: https://bugs.php.net/bug.php?id=45197
up
4
Sinured
10 years ago
One interesting thing I found out: You can concatenate variables and use spaces. Concatenating constants and function calls are also possible.

<?php
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:

<?php
$foo
= 'info';
{
"php$foo"}(); // Parse error

// 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.
up
2
jupp-mueller at t-online dot de
15 years ago
I found another undocumented/cool feature: variable member variables in classes. It's pretty easy:

<?php
class foo {
  function
bar() {
   
$bar1 = "var1";
   
$bar2 = "var2";
   
$this->{$bar1}= "this ";
   
$this->{$bar2} = "works";
  }
}

$test = new foo;
$test->bar();
echo
$test->var1 . $test->var2;
?>
up
2
Anonymous
15 years ago
The 'dollar dereferencing' (to coin a phrase) doesn't seem to be limited to two layers, even without curly braces.  Observe:

<?php
$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:

<?php
$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
up
2
mccoyj at mail dot utexas dot edu
16 years ago
There is no need for the braces for variable object names...they are only needed by an ambiguity arises concerning which part of the reference is variable...usually with arrays.

<?php
class Schlemiel {
var
$aVar = "foo";
}

$schlemiel = new Schlemiel;
$a = "schlemiel";
echo $
$a->aVar;
?>

This code outputs "foo" using PHP 4.0.3.

Hope this helps...
- Jordan
up
1
Omar Juvera
6 years ago
The example given in the php manual is confusing!
I think this example it's easier to understand:

<?php

//Let's create a new variable: $new_variable_1
$var_name = "new_variable_1"; //$var_name will store the NAME of the new variable

//Let's assign a value to that [$new_variable_1] variable:
$$var_name  = "value 1"; //Value of $new_variable_1 = "value 1"

echo "VARIABLE: " . $var_name;
echo
"<br />";
echo
"VALUE: " . $$var_name;
?>

The OUTPUT is:
VARIABLE: new_variable_1
VALUE: value 1

You can also create new variables in a loop:
<?php

for( $i = 1; $i < 6; $i++ )
{
$var_name[] = "new_variable_" . $i; //$var_name[] will hold the new variable NAME
}

${
$var_name[0]}  = "value 1"; //Value of $new_variable_1 = "value 1"
${$var_name[1]}  = "value 2"; //Value of $new_variable_2 = "value 2"
${$var_name[2]}  = "value 3"; //Value of $new_variable_3 = "value 3"
${$var_name[3]}  = "value 4"; //Value of $new_variable_4 = "value 4"
${$var_name[4]}  = "value 5"; //Value of $new_variable_5 = "value 5"

echo "VARIABLE: " . $var_name[0] . "\n";
echo
"<br />";
echo
"VALUE: " . ${$var_name[0]};
?>

The OUTPUT is:
VARIABLE: new_variable_1
VALUE: value 1
up
1
Aycan Yat
3 years ago
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".

$modifier = $$which_one;  //Now $modifier has value 2.
$modifier++; //Now $modifier's value is 3.
echo $second_var; //Prints out 2

//Consider we wish to modify the value of $second_var
$modifier = &$$which_one;  //Simply passing by reference
$modifier++; //Now value of $second_var is 3 too.
echo $second_var; //Prints out 3

It's that simple!
up
1
correojulian33-php at yahoo dot es
9 years ago
This example may help to overcome the limitation on $this.

Populate automatically fields of an object form a $_GET variable.

<?php
class pp{
   var
$prop1=1,$prop2=2,$prop3=array(3,4,5);

   function
fun1(){
     
$vars=get_class_vars('pp');
      while(list(
$var,$value)=each($vars)){
              
$ref=& $this->$var;
              
$ref=$_GET[$var];

      }
// while
     
var_dump($this);
   }
}

$_GET['prop1']="uno";
$_GET['prop2']="dos";
$_GET['prop3']=array('tres','cuatro','cinco','seis');

$p=new pp();
$p->fun1();
?>

output is ...

object(pp)#1 (3) {
  ["prop1"]=>
  &string(3) "uno"
  ["prop2"]=>
  &string(3) "dos"
  ["prop3"]=>
  &array(4) {
    [0]=>
    string(4) "tres"
    [1]=>
    string(6) "cuatro"
    [2]=>
    string(5) "cinco"
    [3]=>
    string(4) "seis"
  }
}
up
1
sir_hmba AT yahoo DOT com
14 years ago
This is somewhat redundant, but I didn't see an example that combined dynamic reference of *both* object and attribute names.

Here's the code:

<?php
class foo
{
    var
$bar;
    var
$baz;

    function
foo()
    {
       
$this->bar = 3;
       
$this->baz = 6;
    }
}

$f = new foo();
echo
"f->bar=$f->bar  f->baz=$f->baz\n";

$obj  = 'f';
$attr = 'bar';
$val  = $$obj->{$attr};

echo
"obj=$obj  attr=$attr  val=$val\n";
?>

And here's the output:

f->bar=3  f->baz=6
$obj=f  $attr=bar  $val=3
up
1
thien_tmpNOSPAM at hotmail dot com
15 years ago
You can also use variable variables and the string concat operator to generate suffixed (or prefixed) variables based on a base name.

For instance, if you wanted to dynamically generate this series of variables:

base1_suffix1
base1_suffix2
base2_suffix1
base2_suffix2
base3_suffix1
base3_suffix2

You can do this:

<?php
$bases
= array('base1', 'base2', 'base3');
$suffixes = array('suffix1', suffix2);
foreach(
$bases as $base) {
    foreach(
$suffixes as $suffix) {
        ${
$base.$suffix} = "whatever";
       
#...etc
   
}
}
?>
up
-1
Abel
1 month ago
In my "for" function I need often that my variable name have the value of another variable. I proceed so:

for($i = 1; $i <= 4; $i++){

    ${text.${i}.original} = "Chapiter ".$i;

}

echo $text1original;

The result will be "Chapiter 1"
up
-1
duartejuca at gmail dot com
3 months ago
// Acessing from class

//Lets create the class
class fooClass {

    //Here I have one variable private
    private $usr = 'littleJohn';
   
    // here I have one variable public
    public $psw = 'blablabla1982';

    function fooFunction()
    {
        return $this->usr; // here I can read the private variable
        // $this because I reading this object
        // usr without '$' because is one component from this object
    }
}

// Here I put the new class object inside of one container
$conn = new fooClass;

// now I read the function
echo $conn->functionFoo();

// now I read the value of variable inside of component in class
echo $conn->passw; // look without '$'

// if I try to read the private value like I do with public, I got one error
echo $conn->usr; // look without '$'
up
0
Anonymous
8 years ago
I have a HTML form that has a dynamic number of fields (for entry of collected data it adds a new field each time) and would like to use the variable variable on _POST.  This way, I could increment the field name value with a loop limit when say 100 fields are reached (the max for the form.)

Below is the solution I came up with to work around it:

<?php
        $MaxRows
=100;
       
$NumbersOfTime=0;
       
extract ($_POST,EXTR_PREFIX_ALL,'pos');

        for (
$i = 1; $i <= $MaxRows; $i = $i + 1)
        {
               
$tmp = "pos_TimeRecorded{$i}";
                if (isset($
$tmp))
                {
                       
$TimeRecorded[$i]=$$tmp;

                }
                else
                {
                       
$NumbersOfTime=$i-1;
                        break;
                }
        }

?>
up
0
j3nda at fv dot cz
9 years ago
hi, i handling multi-array with like this:

i use this for some classes with direct access to $__info array. and i have some config_{set|get} static functions without this class, but handling is the same.

i'm not testing this piece of code for benchmark and high load.

<?php
class __info {
  private
$__info=array();

  public function
__s($value=null, $id='')
    {
        if (
$id == '')
            return
false;

       
$id='[\''.$id.'\']';
        for (
$i=2, $max=func_num_args(), $args=func_get_args(); $i<$max; $i++)
           
$id.='[\''.$args[$i].'\']';

        eval(
'
            if (isset($this->__info'
.$id.')) {
                // debug || vyjimka
            }
            $this->__info'
.$id.'=$value;
        '
);
        return
true;
    }

  public function
__g($id)
    {
       
$uid='';
        for (
$i=0, $max=func_num_args(), $args=func_get_args(); $i<$max; $i++)
           
$uid.="[\'".$args[$i]."\']";

        return eval(
'
            if (isset($this->__info'
.$uid.')) {
                return $this->__info'
.$uid.';

            } else {
                return false;
            }
            // debug || vyjimka
        '
);

        return
false;
    }
?>
up
0
craigmorey at gmail dot com
9 years ago
For a long time I've been trying to use variable variables to figure out how to store and retrieve multi-dimensional arrays in a MySQL dbase. For instance, a config setting stored in a complex array might resemble the below:

<?php $config['modules']['module_events']['settings']['template']['name'] = 'List Page'; ?>

The most obvious way for storing this info in a dbase (discounting XML/JSON) is to store a "path" (of the nesting) and a "value" in a database record:

'modules,module_events,settings,template,name' = 'List Page'

But storing it is only part of the problem. PHP variable variables are no use to try and interpret string representations of arrays, eg it will see the string representation of a nested array such as config['modules']['module_events'] as a single variable called 'config[modules][module_events]', so loops that parse the "path" into a variable variable don't help.

So here is a little function that parses an array of "paths" and "value" string
<" 
}
}
?&lass="keyword">='suffix1'='suffix1'= p;      t">false$uid=$uid='suffix1'(=; 'seis');$uid=?&keyw!ss="keyword">==false// inuerclass="default">$uid?>lass="keyword">=?>#t;?phpottom,nd highf aran>===$uid= $uid=$i +  rclass="default">$uid=$uid=?&ass="keyword">='suffix1'=$bp;      t">false=?>default">?>#t( eg ison t"0") vkipbr />i'yccause I reading this object
&nbbject
 an>?&keywss="keyword">=$==an>(); false// inuerclass="default">$uid?>e=?>default">?>#t />
&lss}
}
$uid
=$i ,'suffix1'=$uid?>lass="keyword">=$uid
='suffix1'=='seis');$uid>;
 az=6 'seis'
>
0
564 n 47a href="#121174" class="name"> 564 norey at gmail dot com
8 years ago
2-10 10:14ss="text" id="Hcom87337">
&lo arraHeretondee. <'modussociativeth of a n'modullowss of ed (tsuperglob &nbr />class __info ='seis';
 a>; $uidclass="keyword">;
 preg_match_alass="default">$id
=;
suffix2);
foa>; =
$i=$uid class="default">$uidclass="keyword">;
 $>; + 'seis'$uidass="keyword">=$i]. modulss="keyword">=$uid"default">$uidclass="keyword">;
 $>; + $i].        // debug || vyjimka
  ; // debug || vyjimka>;
 a>$i
);$_POST, 'suffix1'='seis'=four'pan class="string">'suffix1',= ; $val  = $3;

&n
"f-& = $6;
an>,3;
  &nV represAnesebsp;       retass="keyword">=
=<// nows >= 6;
an>,3;
  &nV represAnesebsp;       retass="keyword">=
=<// nows int(8)>
/>
f->bar=3ult"><
mp;page=language.variables.variable&1274>up" title="Vote up!" class="usernotes-voteu">up
-1 n 46a href="#121174" class="name"> norey at gmail dot com
3 months ago 9iv c3ass="text" id="Hcom31857">
mFor a long time I've been trying to use variablPhelp.ng ingorable confige.g.id="12117ts,settiarra> class 3;
  &ngetIngorablS;

output is ...

6;
an>output is ...

6
;
an>$obj

output is ... __info $value=
;
 aGLOBALSs="default">$i
].]. m]anclass=}"default">$uid"default">$uidc 
output is ...

3
;
  &npreg_replaca_ps tbackss="default">$id
=;
'seis'
==$obj

output is ...
up
-1 47a href="#121174" class="name">
8 years ago
&ld hiexist 4;s of v/diinebr />$bases = array(3;
][;

&n3
;
  &n0sp;       return eval(s="keyword">,
/>
f->bar=3of vget211 help.'$'
up
-1 46a href="#121174" class="name">
8 years ago
&lo ainebr />$bases = array($id=; ;
an>= array(3;
][han class="default">$obj

3
;
][BRnbsp sp;       return eval(}
, />
f->bar=3z=6 $bases
-1 44a href="#121174" class="name">
8 years ago
&l/e forout se to t"g represe"paths"corray tame value e h* obje p $co v> u cogo$bases = array($id=; ;
an>= array(/diiness="default">$id=; ;
an>= array(3;
an>vote=down" title="Vote down!" class="uvarnectTspan>"f-&ass="keyword">== array(3= ;
an>$args[;

.<{ss="keyword">=
pan class="defap> 3; $args
["f-&ass="keyword">=; ;

brnbsp sp;       return eval(p> 3
; $args
["f-&ass="keyword">=; ;

brnbsp sp;       return eval(p> 3
; $args
["f-&ass="keyword">=; ;

brnbsp sp;       return eval(n eval(s="keyword">, />
f-&g[EditrraN
up
-1 42a href="#121174" class2"name">
8 years ago06-24iv c58ss="text" id="Hcom87337">
up
-1 4a href="#80065" class=-3"name">
8 years ago
&n fardy gmpan>orm usssorm elan sas ussssn = artss="default">3$obj

sn />
orm ae=dow/submed criptd (orpan
orm of vconc_{set|gee oin &n fas e.vy UPDATE queryva|gof vvaed />
sn = artss="default">3$obj

see=dow>