mirror of
https://github.com/php/php-src.git
synced 2024-10-18 23:12:35 +00:00
311 lines
5.8 KiB
PHP
311 lines
5.8 KiB
PHP
--TEST--
|
|
Test var_export() function with valid objects
|
|
--FILE--
|
|
<?php
|
|
/* Prototype : mixed var_export(mixed var [, bool return])
|
|
* Description: Outputs or returns a string representation of a variable
|
|
* Source code: ext/standard/var.c
|
|
* Alias to functions:
|
|
*/
|
|
|
|
echo "*** Testing var_export() with valid objects ***\n";
|
|
|
|
// class with no members
|
|
class foo
|
|
{
|
|
// no members
|
|
}
|
|
|
|
// abstract class
|
|
abstract class abstractClass
|
|
{
|
|
abstract protected function getClassName();
|
|
public function printClassName () {
|
|
echo $this->getClassName() . "\n";
|
|
}
|
|
}
|
|
// implement abstract class
|
|
class concreteClass extends abstractClass
|
|
{
|
|
protected function getClassName() {
|
|
return "concreteClass";
|
|
}
|
|
}
|
|
|
|
// interface class
|
|
interface iValue
|
|
{
|
|
public function setVal ($name, $val);
|
|
public function dumpVal ();
|
|
}
|
|
// implement the interface
|
|
class Value implements iValue
|
|
{
|
|
private $vars = array ();
|
|
|
|
public function setVal ( $name, $val ) {
|
|
$this->vars[$name] = $val;
|
|
}
|
|
|
|
public function dumpVal () {
|
|
var_export ( $vars );
|
|
}
|
|
}
|
|
|
|
// a gereral class
|
|
class myClass
|
|
{
|
|
var $foo_object;
|
|
public $public_var;
|
|
public $public_var1;
|
|
private $private_var;
|
|
protected $protected_var;
|
|
|
|
function myClass ( ) {
|
|
$this->foo_object = new foo();
|
|
$this->public_var = 10;
|
|
$this->public_var1 = new foo();
|
|
$this->private_var = new foo();
|
|
$this->proected_var = new foo();
|
|
}
|
|
}
|
|
|
|
// create a object of each class defined above
|
|
$myClass_object = new myClass();
|
|
$foo_object = new foo();
|
|
$Value_object = new Value();
|
|
$concreteClass_object = new concreteClass();
|
|
|
|
$valid_objects = array(
|
|
"new stdclass" => new stdclass,
|
|
"new foo" => new foo,
|
|
"new concreteClass" => new concreteClass,
|
|
"new Value" => new Value,
|
|
"new myClass" => new myClass,
|
|
"myClass_object" => $myClass_object,
|
|
"myClass_object->foo_object" => $myClass_object->foo_object,
|
|
"myClass_object->public_var1" => $myClass_object->public_var1,
|
|
"foo_object" => $foo_object,
|
|
"Value_object" => $Value_object,
|
|
"concreteClass_object" => $concreteClass_object
|
|
);
|
|
/* Loop to check for above objects with var_export() */
|
|
echo "\n*** Output for objects ***\n";
|
|
foreach($valid_objects as $key => $obj) {
|
|
echo "\n-- Iteration: $key --\n";
|
|
var_export( $obj );
|
|
echo "\n";
|
|
var_export( $obj, FALSE);
|
|
echo "\n";
|
|
var_dump( var_export( $obj, TRUE) );
|
|
echo "\n";
|
|
}
|
|
?>
|
|
===DONE===
|
|
--EXPECT--
|
|
*** Testing var_export() with valid objects ***
|
|
|
|
*** Output for objects ***
|
|
|
|
-- Iteration: new stdclass --
|
|
stdClass::__set_state(array(
|
|
))
|
|
stdClass::__set_state(array(
|
|
))
|
|
string(31) "stdClass::__set_state(array(
|
|
))"
|
|
|
|
|
|
-- Iteration: new foo --
|
|
foo::__set_state(array(
|
|
))
|
|
foo::__set_state(array(
|
|
))
|
|
string(26) "foo::__set_state(array(
|
|
))"
|
|
|
|
|
|
-- Iteration: new concreteClass --
|
|
concreteClass::__set_state(array(
|
|
))
|
|
concreteClass::__set_state(array(
|
|
))
|
|
string(36) "concreteClass::__set_state(array(
|
|
))"
|
|
|
|
|
|
-- Iteration: new Value --
|
|
Value::__set_state(array(
|
|
'vars' =>
|
|
array (
|
|
),
|
|
))
|
|
Value::__set_state(array(
|
|
'vars' =>
|
|
array (
|
|
),
|
|
))
|
|
string(57) "Value::__set_state(array(
|
|
'vars' =>
|
|
array (
|
|
),
|
|
))"
|
|
|
|
|
|
-- Iteration: new myClass --
|
|
myClass::__set_state(array(
|
|
'foo_object' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'public_var' => 10,
|
|
'public_var1' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'private_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'protected_var' => NULL,
|
|
'proected_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
))
|
|
myClass::__set_state(array(
|
|
'foo_object' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'public_var' => 10,
|
|
'public_var1' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'private_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'protected_var' => NULL,
|
|
'proected_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
))
|
|
string(293) "myClass::__set_state(array(
|
|
'foo_object' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'public_var' => 10,
|
|
'public_var1' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'private_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'protected_var' => NULL,
|
|
'proected_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
))"
|
|
|
|
|
|
-- Iteration: myClass_object --
|
|
myClass::__set_state(array(
|
|
'foo_object' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'public_var' => 10,
|
|
'public_var1' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'private_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'protected_var' => NULL,
|
|
'proected_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
))
|
|
myClass::__set_state(array(
|
|
'foo_object' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'public_var' => 10,
|
|
'public_var1' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'private_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'protected_var' => NULL,
|
|
'proected_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
))
|
|
string(293) "myClass::__set_state(array(
|
|
'foo_object' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'public_var' => 10,
|
|
'public_var1' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'private_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
'protected_var' => NULL,
|
|
'proected_var' =>
|
|
foo::__set_state(array(
|
|
)),
|
|
))"
|
|
|
|
|
|
-- Iteration: myClass_object->foo_object --
|
|
foo::__set_state(array(
|
|
))
|
|
foo::__set_state(array(
|
|
))
|
|
string(26) "foo::__set_state(array(
|
|
))"
|
|
|
|
|
|
-- Iteration: myClass_object->public_var1 --
|
|
foo::__set_state(array(
|
|
))
|
|
foo::__set_state(array(
|
|
))
|
|
string(26) "foo::__set_state(array(
|
|
))"
|
|
|
|
|
|
-- Iteration: foo_object --
|
|
foo::__set_state(array(
|
|
))
|
|
foo::__set_state(array(
|
|
))
|
|
string(26) "foo::__set_state(array(
|
|
))"
|
|
|
|
|
|
-- Iteration: Value_object --
|
|
Value::__set_state(array(
|
|
'vars' =>
|
|
array (
|
|
),
|
|
))
|
|
Value::__set_state(array(
|
|
'vars' =>
|
|
array (
|
|
),
|
|
))
|
|
string(57) "Value::__set_state(array(
|
|
'vars' =>
|
|
array (
|
|
),
|
|
))"
|
|
|
|
|
|
-- Iteration: concreteClass_object --
|
|
concreteClass::__set_state(array(
|
|
))
|
|
concreteClass::__set_state(array(
|
|
))
|
|
string(36) "concreteClass::__set_state(array(
|
|
))"
|
|
|
|
===DONE===
|