Tach!
kann man mit der Interzeptor-Methode
__set()
auf irgend eine weise Werte in ein existierendes numerisches Array Property der Klasse Foobar einfügen?
Die Methode __set() eines Objekts wird aufgerufen, wenn auf nicht zugreifbare (zum Beispiel weil nicht existente) Eigenschaften zugegriffen wird. Was du dann tust, hat mit __set() nichts mehr zu tun. Dass du also auf Eigenschaften eines Arrays zugreifst, ist unabhängig von __set().
und das sowas machen?
$fb = new Foobar; $fb->tok[ $i ] = [ 'fu' => 'baz' ];
In der zweiten Zeile findet zuerst ein Lesezugriff auf $fb->tok statt. Wenn das nicht existiert, wird erstmal __get() aufgerufen.
Der Zugriff auf $fb->tok[$i] hat nun nichts mehr mit dem Objekt in $fb zu tun, da greifen also keine magischen Methoden dieses Objekts mehr. Ein Zugriff der gezeigten Art kann nur klappen, wenn entweder tok existiert und ein Array oder String ist, oder wenn __get() ein Array oder String zurückgibt. Mit String wird es aber eine Notice geben und ein eher nicht erwartetes Ergebnis.
dedlfix.