array_fill_object_2_4.phpt [plain text]
--TEST--
Test array_fill() function : usage variations - various object values for 'val' argument
--SKIPIF--
<?php if (version_compare(zend_version(), '2.4.0', '<')) die('skip ZendEngine 2.4 needed'); ?>
--FILE--
<?php
echo "*** Testing array_fill() : usage variations ***\n";
$start_key = 0;
$num = 2;
class Test
{
}
class Test1
{
const test1_constant = "test1";
public static $test1_static = 0;
public $member1;
var $var1 = 30;
var $var2;
function __construct($value1 , $value2)
{
$this->member1 = $value1;
$this->var2 = $value2;
}
}
class Child_test1 extends Test1
{
public $member2;
function __construct($value1 , $value2 , $value3)
{
parent::__construct($value1 , $value2);
$this->member2 = $value3;
}
}
class Test2
{
const test2_constant = "test2";
public static $test2_static = 0;
private $member1;
var $var1 = 30;
var $var2;
function __construct($value1 , $value2)
{
$this->member1 = $value1;
$this->var2 = $value2;
}
}
class Child_test2 extends Test2
{
private $member1;
function __construct($value1 , $value2 , $value3)
{
parent::__construct($value1 , $value2);
$this->member1 = $value3;
}
}
class Test3
{
const test3_constant = "test3";
public static $test3_static = 0;
protected $member1;
var $var1 = 30;
var $var2;
function __construct($value1 , $value2)
{
$this->member1 = $value1;
$this->var2 = $value2;
}
}
class Child_test3 extends Test3
{
protected $member1;
function __construct($value1 , $value2 , $value3)
{
parent::__construct($value1 , $value2);
$this->member1 = $value3;
}
}
class Test4
{
const test4_constant = "test4";
public static $test4_static = 0;
public $member1;
private $member2;
protected $member3;
function __construct($value1 , $value2 , $value3)
{
$this->member1 = $value1;
$this->member2 = $value2;
$this->member3 = $value3;
}
}
class Child_test4 extends Test4
{
var $var1;
function __construct($value1 , $value2 , $value3 , $value4)
{
parent::__construct($value1 , $value2 , $value3);
$this->var1 = $value4;
}
}
abstract class AbstractClass
{
public $member1;
private $member2;
protected $member3;
var $var1 = 30;
abstract protected function display();
}
class ConcreteClass1 extends AbstractClass
{
protected function display()
{
echo "class name is ConcreteClass1 \n";
}
}
interface iTemplate
{
public function display();
}
class Template1 implements iTemplate
{
public function display()
{
echo "class name is Template1\n";
}
}
$objects = array(
new Test(),
new Test1(100 , 101),
new Child_test1(100 , 101 , 102),
new Test2(100 , 101),
new Child_test2(100 , 101 , 102),
new Test3(100 , 101),
new Child_test3(100 , 101 , 102),
new Test4( 100 , 101 , 102),
new Child_test4(100 , 101 , 102 , 103),
new ConcreteClass1(),
new Template1()
);
echo "--- Testing array_fill() with different object values for 'val' argument ---\n";
$counter = 1;
for($index = 0; $index < count($objects); $index ++)
{
echo "-- Iteration $counter --\n";
$val = $objects[$index];
var_dump( array_fill($start_key,$num,$val) );
$counter++;
}
echo "Done";
?>
--EXPECTF--
*** Testing array_fill() : usage variations ***
--- Testing array_fill() with different object values for 'val' argument ---
-- Iteration 1 --
array(2) {
[0]=>
object(Test)#%d (0) {
}
[1]=>
object(Test)#%d (0) {
}
}
-- Iteration 2 --
array(2) {
[0]=>
object(Test1)#%d (3) {
["member1"]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
[1]=>
object(Test1)#%d (3) {
["member1"]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
}
-- Iteration 3 --
array(2) {
[0]=>
object(Child_test1)#%d (4) {
["member2"]=>
int(102)
["member1"]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
[1]=>
object(Child_test1)#%d (4) {
["member2"]=>
int(102)
["member1"]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
}
-- Iteration 4 --
array(2) {
[0]=>
object(Test2)#%d (3) {
["member1":"Test2":private]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
[1]=>
object(Test2)#%d (3) {
["member1":"Test2":private]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
}
-- Iteration 5 --
array(2) {
[0]=>
object(Child_test2)#%d (4) {
["member1":"Child_test2":private]=>
int(102)
["var1"]=>
int(30)
["var2"]=>
int(101)
["member1":"Test2":private]=>
int(100)
}
[1]=>
object(Child_test2)#%d (4) {
["member1":"Child_test2":private]=>
int(102)
["var1"]=>
int(30)
["var2"]=>
int(101)
["member1":"Test2":private]=>
int(100)
}
}
-- Iteration 6 --
array(2) {
[0]=>
object(Test3)#%d (3) {
["member1":protected]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
[1]=>
object(Test3)#%d (3) {
["member1":protected]=>
int(100)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
}
-- Iteration 7 --
array(2) {
[0]=>
object(Child_test3)#%d (3) {
["member1":protected]=>
int(102)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
[1]=>
object(Child_test3)#%d (3) {
["member1":protected]=>
int(102)
["var1"]=>
int(30)
["var2"]=>
int(101)
}
}
-- Iteration 8 --
array(2) {
[0]=>
object(Test4)#%d (3) {
["member1"]=>
int(100)
["member2":"Test4":private]=>
int(101)
["member3":protected]=>
int(102)
}
[1]=>
object(Test4)#%d (3) {
["member1"]=>
int(100)
["member2":"Test4":private]=>
int(101)
["member3":protected]=>
int(102)
}
}
-- Iteration 9 --
array(2) {
[0]=>
object(Child_test4)#%d (4) {
["var1"]=>
int(103)
["member1"]=>
int(100)
["member2":"Test4":private]=>
int(101)
["member3":protected]=>
int(102)
}
[1]=>
object(Child_test4)#%d (4) {
["var1"]=>
int(103)
["member1"]=>
int(100)
["member2":"Test4":private]=>
int(101)
["member3":protected]=>
int(102)
}
}
-- Iteration 10 --
array(2) {
[0]=>
object(ConcreteClass1)#%d (4) {
["member1"]=>
NULL
["member2":"AbstractClass":private]=>
NULL
["member3":protected]=>
NULL
["var1"]=>
int(30)
}
[1]=>
object(ConcreteClass1)#%d (4) {
["member1"]=>
NULL
["member2":"AbstractClass":private]=>
NULL
["member3":protected]=>
NULL
["var1"]=>
int(30)
}
}
-- Iteration 11 --
array(2) {
[0]=>
object(Template1)#%d (0) {
}
[1]=>
object(Template1)#%d (0) {
}
}
Done