1. PHP / Говнокод #2887

    +169

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?php 
    function findAttribute($object, $attribute) { 
      foreach($object->attributes() as $a => $b) { 
        if ($a == $attribute) { 
          $return = $b; 
        } 
      } 
      if($return) { 
        return $return; 
      } 
    } 
    ?>

    так человек предлагает возвращать нужный аттрибут из xml ноды.
    http://ru.php.net/manual/en/simplexmlelement.attributes.php#42692

    Запостил: striker, 29 Марта 2010

    Комментарии (14) RSS

    • Очень радует перебор ассоциативного массива и return только в случае если аттрибут найден. К С++ такого бы не пустил даже, да и к PHP тоже.
      Ответить
      • Перебор ассоциативного массива медленный?
        А почему?
        Ответить
    • Вообще странно, нафига эти долбоёбы постят примеры кода на php.net? Потом чайники идут и читают маны и думают, что это - правильные примеры. А тем временем, на php.net over 99% такого говна. Расстрелять
      Ответить
      • Да вот да, там следовало бы сделать команду модераторов, чтобы вычищать такой говнокод...
        Ответить
    • Это потеря потерь...
      Ответить
    • XPath уже не в моде?
      Ответить
      • XPath медленнее даже такого перебора
        Ответить
        • не обязательно, если обращаться через SimpleXML, то может и быстрее...
          Ответить
      • $object[$attribute];

        к аттрибутам в simplexml можно обращаться как к элементам массива.

        http://ru.php.net/manual/en/simplexml.examples-basic.php
        SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an array .
        Ответить
    • хотя бы break надо поставить, а не перебирать все элементы даже если нужный найден
      Ответить

    Добавить комментарий