<?php
class Test implements Countable {
public $prop1;
private $propa=2;
protected $propx=3;
public $prop4 = array(1,2,3,4);
public function Greet()
{
return 'hello world';
}
public function getCount()
{
$res = (array) $this;
return count($res);
}
public function count()
{
echo 'Trying to get the count ...';
return $this->getCount();
}
}
// per manual: ArrayObject constructed from array means all properties are public.
$t = new Test;
echo $t->Greet(),"\n";
echo count( (array) $t),"\n";
echo $t->getCount(),"\n";
echo count($t),"\n";
var_dump( get_object_vars($t) );
$a = (array) $t;
echo count($ao = new ArrayObject($a)),"\n";
echo $ao->count();
Deprecated: Return type of Test::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/IAnHe on line 17
hello world
4
4
Trying to get the count ...4
array(2) {
["prop1"]=>
NULL
["prop4"]=>
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
}
}
4
4