Objekt Undefined property

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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?

      Comment


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

        Comment


        • #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?

          Comment


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

            Comment


            • #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

              Comment


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

                Comment


                • #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

                  Comment

                  Working...
                  X