Objekt Undefined property

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Objekt Undefined property

    Hi,

    ich hab nur ein kleines Problem.
    Ich muss auf folgendes Objekt zugreifen.

    PHP-Code:
    array(2) {
      [
    0]=>
      
    object(domattribute)(5) {
        [
    "type"]=>
        
    int(2)
        [
    "name"]=>
        
    string(10"style-name"
        
    ["value"]=>
        
    string(9"Heading 2"
        
    [0]=>
        
    int(77)
        [
    1]=>
        
    int(69359824)
      }
      [
    1]=>
      
    object(domattribute)(5) {
        [
    "type"]=>
        
    int(2)
        [
    "name"]=>
        
    string(13"outline-level"
        
    ["value"]=>
        
    string(1"1"
        
    [0]=>
        
    int(78)
        [
    1]=>
        
    int(69359968)
      }

    War bisher kein Problem, da ich nur auf "name" zugreifen musste.
    Nun aber muss ich auf "outline-level" zugreifen.

    Dadruch erhalte ich bei dem Aufruf durch

    PHP-Code:
    $level=$heading[1]->outline-level
    folgende Fehler.

    Notice: Undefined property: outline in /Library/WebServer/Documents/index.php on line 38

    Notice: Use of undefined constant level - assumed 'level' in /Library/WebServer/Documents/index.php on line 38

    Mir ist auch der Fehler klar, aber ich weiss nicht wie ich outline-level dann schreiben
    muss, ich hab alles möglich versucht.

    Und zusätzlich habe ich noch die Frage ob ich auf

    PHP-Code:
    $level=$heading[1]->outline-level
    auch irgendwie ohne die 1 zugreifen kann. Weil wenn ich mal eine unsaubere
    XML Struktur geliefert bekomme und die Attribute dann vertauscht sind ist
    die Indexierung über 1 oder so alles andere als gut.

    Danke schonmal

  • #2
    outline-level mußt du gar nicht schreiben, das ist doch der Wert von $heading[1]->name.

    Kommentar


    • #3
      das hab ich voll überlesen und mich gewundert dass sowas zustande kommt.

      gibt es dann irgend eine möglichkeit nach dem "outline-level" suchen zu lassen?

      dass ich dann darüber bestimme in welcher array position welches element steckt?

      Kommentar


      • #4
        http://php.net/array-search

        Kommentar


        • #5
          das hab ich ja schon versucht, nur dann bekomme ich kein ergebnis.

          und das liegt sicher daran weil in dem array ja in der 2. stufe objekte liegen?

          Kommentar


          • #6
            PHP-Code:
            $key array_search('outline-level'$heading[1]);  // nicht $heading
            echo $heading[1]->$key.' steht in heading[1]->'.$key

            Kommentar


            • #7
              ich hab vorher schon beides getestet.

              aber ich denk das problem ist dass es ein objekt ist.

              Warning: array_search(): Wrong datatype for second argument in /Library/WebServer/Documents/index.php on line 36

              Kommentar


              • #8
                Oh das habe ich übersehen. Kannst du es casten?
                PHP-Code:
                $key array_search('outline-level', (array)$heading[1]); 

                Kommentar


                • #9
                  ah wunderbar.

                  weil durch das parsen aus dem xml document hab ich dann halt die objekte.

                  aber mit dem casten geht es perfekt. ich wusste nicht dass das geht.

                  danke,m ich hab mich schon wie ein bekloppter gefühlt

                  Kommentar

                  Lädt...
                  X