Ich bin ein Anfänger in objektorientierten, würde ich gerne wissen, ob es möglich ist, mit einigen Cast, magische Methode oder objektorientierte Engineering, was im Kommentar Code unten aufrufen?PHP Methode in Iterator aufrufen
Vielen Dank im Voraus A.pe
<?php
Class myArrayObj {
public $myArray ;
function __construct(){
$this->myArray = array(
0 => 'a',
1 => array('subA','subB',array(0 => 'subsubA', 1 => 'subsubB', 2 => array(0 => 'deepA', 1 => 'deepB'))),
2 => 'b',
3 => array('subA','subB','subC'),
4 => 'c'
);
}
function getNumber() {
return count($this->myArray);
}
}
$a = new myArrayObj();
$i = new RecursiveIteratorIterator(new RecursiveArrayIterator($a),RecursiveIteratorIterator::SELF_FIRST);
foreach($i as $key => $value) {
$type = gettype($value);
$depth = $i->getDepth();
if($i->hasChildren()) {
echo "$depth: $key ($type) has children<br>";
/* here is it possible to call ....->getNumber(); */
}
else {
echo "$depth: $key ($type) has no children<br>";
/* here is it possible to call ....->getNumber(); */
}
}
könnten Sie einfach tun '$ a-> getNumber()', aber ich fühle mich wie ich bin nicht die Frage richtig hier zu verstehen. – Andrew
"Ist es möglich, mithilfe eines Cast, einer magischen Methode oder eines objektorientierten Engineerings das im folgenden Kommentarcode aufzurufen?" - Nein. Weil die Beziehung mit dem ursprünglichen Objekt gebrochen ist. 'RecursiveArrayIterator' wird das Objekt in Array umwandeln. – RomanPerekhrest