php-src/ext/standard/tests/general_functions/var_export-locale.phpt
2008-08-21 12:38:47 +00:00

1062 lines
16 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--TEST--
Test var_export() function with locale
--INI--
precision=14
--SKIPIF--
<?php
if (!setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8")) {
die("skip locale needed for this test is not supported on this platform");
}
?>
--FILE--
<?php
setlocale(LC_ALL, "german", "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8");
/* Prototype: mixed var_export( mixed expression [, bool return]);
* Description: Returns the variable representation when the return parameter is used and evaluates to TRUE. Otherwise, this function will return NULL.
*/
echo "*** Testing var_export() with integer values ***\n";
// different integer vlaues
$valid_ints = array(
'0',
'1',
'-1',
'-2147483648', // max negative integer value
'-2147483647',
2147483647, // max positive integer value
2147483640,
0x123B, // integer as hexadecimal
'0x12ab',
'0Xfff',
'0XFA',
-0x80000000, // max negative integer as hexadecimal
'0x7fffffff', // max postive integer as hexadecimal
0x7FFFFFFF, // max postive integer as hexadecimal
'0123', // integer as octal
01912, // should be quivalent to octal 1
-020000000000, // max negative integer as octal
017777777777, // max positive integer as octal
);
$counter = 1;
/* Loop to check for above integer values with var_export() */
echo "\n*** Output for integer values ***\n";
foreach($valid_ints as $int_value) {
echo "\nIteration ".$counter."\n";
var_export( $int_value );
echo "\n";
var_export( $int_value, FALSE);
echo "\n";
var_dump( var_export( $int_value, TRUE) );
echo "\n";
$counter++;
}
echo "*** Testing var_export() with valid boolean values ***\n";
// different valid boolean vlaues
$valid_bool = array(
1,
TRUE,
true,
0,
FALSE,
false
);
$counter = 1;
/* Loop to check for above boolean values with var_export() */
echo "\n*** Output for boolean values ***\n";
foreach($valid_bool as $bool_value) {
echo "\nIteration ".$counter."\n";
var_export( $bool_value );
echo "\n";
var_export( $bool_value, FALSE);
echo "\n";
var_dump( var_export( $bool_value, TRUE) );
echo "\n";
$counter++;
}
echo "*** Testing var_export() with valid float values ***\n";
// different valid float vlaues
$valid_floats = array(
-2147483649, // float value
2147483648, // float value
-0x80000001, // float value, beyond max negative int
0x800000001, // float value, beyond max positive int
020000000001, // float value, beyond max positive int
-020000000001, // float value, beyond max negative int
0.0,
-0.1,
10.0000000000000000005,
10.5e+5,
1e5,
1e-5,
1e+5,
1E5,
1E+5,
1E-5,
.5e+7,
.6e-19,
.05E+44,
.0034E-30
);
$counter = 1;
/* Loop to check for above float values with var_export() */
echo "\n*** Output for float values ***\n";
foreach($valid_bool as $float_value) {
echo "\nIteration ".$counter."\n";
var_export( $float_value );
echo "\n";
var_export( $float_value, FALSE);
echo "\n";
var_dump( var_export( $float_value, TRUE) );
echo "\n";
$counter++;
}
echo "*** Testing var_export() with valid strings ***\n";
// different valid string
$valid_strings = array(
"",
" ",
'',
' ',
"string",
'string',
"NULL",
'null',
"FALSE",
'false',
"\x0b",
"\0",
'\0',
'\060',
"\070"
);
$counter = 1;
/* Loop to check for above strings with var_export() */
echo "\n*** Output for strings ***\n";
foreach($valid_strings as $str) {
echo "\nIteration ".$counter."\n";
var_export( $str );
echo "\n";
var_export( $str, FALSE);
echo "\n";
var_dump( var_export( $str, TRUE) );
echo "\n";
$counter++;
}
echo "*** Testing var_export() with valid arrays ***\n";
// different valid arrays
$valid_arrays = array(
array(),
array(NULL),
array(null),
array(true),
array(""),
array(''),
array(array(), array()),
array(array(1, 2), array('a', 'b')),
array(1 => 'One'),
array("test" => "is_array"),
array(0),
array(-1),
array(10.5, 5.6),
array("string", "test"),
array('string', 'test')
);
$counter = 1;
/* Loop to check for above arrays with var_export() */
echo "\n*** Output for arrays ***\n";
foreach($valid_arrays as $arr) {
echo "\nIteration ".$counter."\n";
var_export( $arr );
echo "\n";
var_export( $arr, FALSE);
echo "\n";
var_dump( var_export( $arr, TRUE) );
echo "\n";
$counter++;
}
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 foo,
new concreteClass,
new Value,
new myClass,
$myClass_object,
$myClass_object->foo_object,
$myClass_object->public_var1,
$foo_object,
$Value_object,
$concreteClass_object
);
$counter = 1;
/* Loop to check for above objects with var_export() */
echo "\n*** Output for objects ***\n";
foreach($valid_objects as $obj) {
echo "\nIteration ".$counter."\n";
var_export( $obj );
echo "\n";
var_export( $obj, FALSE);
echo "\n";
var_dump( var_export( $obj, TRUE) );
echo "\n";
$counter++;
}
echo "*** Testing var_export() with valid null values ***\n";
// different valid null vlaues
$unset_var = array();
unset ($unset_var); // now a null
$null_var = NULL;
$valid_nulls = array(
NULL,
null,
$null_var,
);
$counter = 1;
/* Loop to check for above null values with var_export() */
echo "\n*** Output for null values ***\n";
foreach($valid_nulls as $null_value) {
echo "\nIteration ".$counter."\n";
var_export( $null_value );
echo "\n";
var_export( $null_value, FALSE);
echo "\n";
var_dump( var_export( $null_value, true) );
echo "\n";
$counter++;
}
echo "\n*** Testing error conditions ***\n";
//Zero argument
var_export( var_export() );
//arguments more than expected
var_export( var_export(TRUE, FALSE, TRUE) );
echo "\n\nDone";
?>
--EXPECTF--
*** Testing var_export() with integer values ***
*** Output for integer values ***
Iteration 1
'0'
'0'
string(3) "'0'"
Iteration 2
'1'
'1'
string(3) "'1'"
Iteration 3
'-1'
'-1'
string(4) "'-1'"
Iteration 4
'-2147483648'
'-2147483648'
string(13) "'-2147483648'"
Iteration 5
'-2147483647'
'-2147483647'
string(13) "'-2147483647'"
Iteration 6
2147483647
2147483647
string(10) "2147483647"
Iteration 7
2147483640
2147483640
string(10) "2147483640"
Iteration 8
4667
4667
string(4) "4667"
Iteration 9
'0x12ab'
'0x12ab'
string(8) "'0x12ab'"
Iteration 10
'0Xfff'
'0Xfff'
string(7) "'0Xfff'"
Iteration 11
'0XFA'
'0XFA'
string(6) "'0XFA'"
Iteration 12
-2147483648
-2147483648
string(11) "-2147483648"
Iteration 13
'0x7fffffff'
'0x7fffffff'
string(12) "'0x7fffffff'"
Iteration 14
2147483647
2147483647
string(10) "2147483647"
Iteration 15
'0123'
'0123'
string(6) "'0123'"
Iteration 16
1
1
string(1) "1"
Iteration 17
-2147483648
-2147483648
string(11) "-2147483648"
Iteration 18
2147483647
2147483647
string(10) "2147483647"
*** Testing var_export() with valid boolean values ***
*** Output for boolean values ***
Iteration 1
1
1
string(1) "1"
Iteration 2
true
true
string(4) "true"
Iteration 3
true
true
string(4) "true"
Iteration 4
0
0
string(1) "0"
Iteration 5
false
false
string(5) "false"
Iteration 6
false
false
string(5) "false"
*** Testing var_export() with valid float values ***
*** Output for float values ***
Iteration 1
1
1
string(1) "1"
Iteration 2
true
true
string(4) "true"
Iteration 3
true
true
string(4) "true"
Iteration 4
0
0
string(1) "0"
Iteration 5
false
false
string(5) "false"
Iteration 6
false
false
string(5) "false"
*** Testing var_export() with valid strings ***
*** Output for strings ***
Iteration 1
''
''
string(2) "''"
Iteration 2
' '
' '
string(3) "' '"
Iteration 3
''
''
string(2) "''"
Iteration 4
' '
' '
string(3) "' '"
Iteration 5
'string'
'string'
string(8) "'string'"
Iteration 6
'string'
'string'
string(8) "'string'"
Iteration 7
'NULL'
'NULL'
string(6) "'NULL'"
Iteration 8
'null'
'null'
string(6) "'null'"
Iteration 9
'FALSE'
'FALSE'
string(7) "'FALSE'"
Iteration 10
'false'
'false'
string(7) "'false'"
Iteration 11
' '
' '
string(3) "' '"
Iteration 12
'' . "\0" . ''
'' . "\0" . ''
string(14) "'' . "\0" . ''"
Iteration 13
'\\0'
'\\0'
string(5) "'\\0'"
Iteration 14
'\\060'
'\\060'
string(7) "'\\060'"
Iteration 15
'8'
'8'
string(3) "'8'"
*** Testing var_export() with valid arrays ***
*** Output for arrays ***
Iteration 1
array (
)
array (
)
string(9) "array (
)"
Iteration 2
array (
0 => NULL,
)
array (
0 => NULL,
)
string(22) "array (
0 => NULL,
)"
Iteration 3
array (
0 => NULL,
)
array (
0 => NULL,
)
string(22) "array (
0 => NULL,
)"
Iteration 4
array (
0 => true,
)
array (
0 => true,
)
string(22) "array (
0 => true,
)"
Iteration 5
array (
0 => '',
)
array (
0 => '',
)
string(20) "array (
0 => '',
)"
Iteration 6
array (
0 => '',
)
array (
0 => '',
)
string(20) "array (
0 => '',
)"
Iteration 7
array (
0 =>
array (
),
1 =>
array (
),
)
array (
0 =>
array (
),
1 =>
array (
),
)
string(55) "array (
0 =>
array (
),
1 =>
array (
),
)"
Iteration 8
array (
0 =>
array (
0 => 1,
1 => 2,
),
1 =>
array (
0 => 'a',
1 => 'b',
),
)
array (
0 =>
array (
0 => 1,
1 => 2,
),
1 =>
array (
0 => 'a',
1 => 'b',
),
)
string(107) "array (
0 =>
array (
0 => 1,
1 => 2,
),
1 =>
array (
0 => 'a',
1 => 'b',
),
)"
Iteration 9
array (
1 => 'One',
)
array (
1 => 'One',
)
string(23) "array (
1 => 'One',
)"
Iteration 10
array (
'test' => 'is_array',
)
array (
'test' => 'is_array',
)
string(33) "array (
'test' => 'is_array',
)"
Iteration 11
array (
0 => 0,
)
array (
0 => 0,
)
string(19) "array (
0 => 0,
)"
Iteration 12
array (
0 => -1,
)
array (
0 => -1,
)
string(20) "array (
0 => -1,
)"
Iteration 13
array (
0 => 10.5,
1 => 5.6,
)
array (
0 => 10.5,
1 => 5.6,
)
string(34) "array (
0 => 10.5,
1 => 5.6,
)"
Iteration 14
array (
0 => 'string',
1 => 'test',
)
array (
0 => 'string',
1 => 'test',
)
string(41) "array (
0 => 'string',
1 => 'test',
)"
Iteration 15
array (
0 => 'string',
1 => 'test',
)
array (
0 => 'string',
1 => 'test',
)
string(41) "array (
0 => 'string',
1 => 'test',
)"
*** Testing var_export() with valid objects ***
*** Output for objects ***
Iteration 1
stdClass::__set_state(array(
))
stdClass::__set_state(array(
))
string(31) "stdClass::__set_state(array(
))"
Iteration 2
foo::__set_state(array(
))
foo::__set_state(array(
))
string(26) "foo::__set_state(array(
))"
Iteration 3
concreteClass::__set_state(array(
))
concreteClass::__set_state(array(
))
string(36) "concreteClass::__set_state(array(
))"
Iteration 4
Value::__set_state(array(
'vars' =>
array (
),
))
Value::__set_state(array(
'vars' =>
array (
),
))
string(57) "Value::__set_state(array(
'vars' =>
array (
),
))"
Iteration 5
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 6
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 7
foo::__set_state(array(
))
foo::__set_state(array(
))
string(26) "foo::__set_state(array(
))"
Iteration 8
foo::__set_state(array(
))
foo::__set_state(array(
))
string(26) "foo::__set_state(array(
))"
Iteration 9
foo::__set_state(array(
))
foo::__set_state(array(
))
string(26) "foo::__set_state(array(
))"
Iteration 10
Value::__set_state(array(
'vars' =>
array (
),
))
Value::__set_state(array(
'vars' =>
array (
),
))
string(57) "Value::__set_state(array(
'vars' =>
array (
),
))"
Iteration 11
concreteClass::__set_state(array(
))
concreteClass::__set_state(array(
))
string(36) "concreteClass::__set_state(array(
))"
*** Testing var_export() with valid null values ***
*** Output for null values ***
Iteration 1
NULL
NULL
string(4) "NULL"
Iteration 2
NULL
NULL
string(4) "NULL"
Iteration 3
NULL
NULL
string(4) "NULL"
*** Testing error conditions ***
Warning: var_export() expects at least 1 parameter, 0 given in %s on line %d
NULL
Warning: var_export() expects at most 2 parameters, 3 given in %s on line %d
NULL
Done