bobby: PHP - Bug?

Moin,

ich habe mal ein wenig rumprobiert auf die Frage von vorhin mit dem Objekt in Javascript. Auf PHP übertragen müsste dann ja folgendes equivalent sein:

$y = (object) ['a', 'b', 'c'];

über var_dump wird mir das Objekt auch angezeigt.

object(stdClass)#153 (3) { ["0"]=> string(1) "a" ["1"]=> string(1) "b" ["2"]=> string(1) "c" }

Ich habe aber niemals die Möglichkeit auf die Eigenschaften zurückzugreifen, außer ich caste das Objekt zu einem Array zurück.

folgende Ausgaben hab ich probiert:

var_dump($y->1);
// wird mir error quitiert
var_dump($y->b);
// ist null
var_dump($y[1]);
// error

Also ist dies doch recht sinnfrei oder gibt es eine Möglichkeit ohne parsen auf die Eigenschaften zuzugreifen?

Gruß Bobby

--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <- ### Henry L. Mencken ### -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <- ### Viktor Frankl ### ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  1. Tach!

    ich habe mal ein wenig rumprobiert auf die Frage von vorhin mit dem Objekt in Javascript.

    Welches "vorhin" meinst du? Beziehst du dich auf das Posting von Silke Seide? Bitte verlinke es, wenn du dich auf ein anderes Posting beziehst.

    Auf PHP übertragen müsste dann ja folgendes equivalent sein:

    $y = (object) ['a', 'b', 'c'];
    

    Falls es das Posting ist, dann nein. In dem Javascript-Beispiel wurde mit Variablen hantiert, deren Namen zu Namen von Objekteigenschaften wurden. Das ist hier nicht der Fall. Hier werden lediglich Werte eines Arrays in ein Objekt konvertiert.

    über var_dump wird mir das Objekt auch angezeigt.

    object(stdClass)#153 (3) { ["0"]=> string(1) "a" ["1"]=> string(1) "b" ["2"]=> string(1) "c" }

    Vorher ein <pre> ausgeben, macht die Sache lesbarer.

    Ich habe aber niemals die Möglichkeit auf die Eigenschaften zurückzugreifen, außer ich caste das Objekt zu einem Array zurück.

    Doch, es gibt PHP-Syntax, mit der man auf Feldnamen zugreifen kann, die keine gültigen Variablen wären. Siehe Converting to object (eine bessere Stelle habe ich nicht gefunden).

    Also ist dies doch recht sinnfrei oder gibt es eine Möglichkeit ohne parsen auf die Eigenschaften zuzugreifen?

    Was konkret hast du vor?

    dedlfix.

    1. Moin,

      ich habe nix vor. Habe nur einfach rumprobiert und es war rein interessehalber. Dein Link hat meine Frage beantwortet, ich werde mir das merken. DANKE

      Und ja, ich habe nun gesehen dass ich mich vertan habe mit dem Äquivalent. Zum Glück verhält sich PHP da anders.

      Gruß Bobby

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <- ### Henry L. Mencken ### -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <- ### Viktor Frankl ### ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)