Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Object und in_array()

Einklappen

Neue Werbung 2019

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

  • Problem mit Object und in_array()

    Irgendwie weiss ich nicht, was PHP nun wieder von mir will. Ich habe einen Array mit Objekten. Nun will ich kontrolliere, ob z.B. PDO im Array ist.

    Code:
    <?php
    
        $arr = array(
            'PDO' => new PDO(...)
        );
    
        var_dump(in_array('PDO', $arr));
    
    ?>
    Führe ich dies aus, so bekomme ich folgende Fehlermeldung:

    Notice: Object of class PDO could not be converted to int in ... on ...
    Wie kommt das?

  • #2
    in_array prüft doch ob der Wert im Array enthalten ist aber nicht ob der Key vorhanden ist...

    in_array -- Checks if a value exists in an array
    http://de2.php.net/manual/en/function.in-array.php

    array_key_exists wäre das richtige
    http://de2.php.net/manual/en/functio...key-exists.php
    Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

    Kommentar


    • #3
      Also versucht in_array PDO im Object zu finden!?

      Wie mache ich es denn am besten so, wie ich es mir anfangs gedacht hatte. Nen einfaches isset()?

      Kommentar


      • #4
        array_key_exists oder isset aber wieso willst das Ergebnis von der Function var_dumpen ?
        Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

        Kommentar


        • #5
          Willst Du wissen, ob es ein bestimmtes Element im Feld gibt? -> isset($arr['PDO'])
          Oder willst Du PDO-Objekte im Feld suchen?
          PHP-Code:
          <?php
          $arr 
          = array(
              
          'PDO' => new PDO('sqlite::memory:'),
              
          'ABC' => 'abc',
              
          'pdo' => new PDO('sqlite::memory:'),
              
          'abc' => 'ABC'
          );

          foreach(
          $arr as $i=>$v) {
              echo 
          'arr['$i'] ';
              
              if(
          is_object($v)) {
                  if(
          get_class($v)=='PDO' || is_subclass_of($v'PDO')) {
                      echo 
          'ist ein PDO-Objekt ';
                  }
                  else {
                      echo 
          'ist irgendein Objekt ';
                  }
              }
              echo 
          "
          \n"
          ;
          }
          ?>

          Kommentar

          Lädt...
          X