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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    public function return_array_element($array, $element){
      /*Return the value of specific array element*/
      return $array[$element];
    }

    тотже мастер класа что и тут:
    http://govnokod.ru/9765/

    Запостил: fafik91, 27 Марта 2012

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

    • http://govnokod.ru/9778
      Ответить
    • ну в версиях до 5,4 такая срань писалась, чтоб можно было вернуть какой-то единственный элемент массива, который вернула функция без явного создания переменной
      типа
      $x = return_array_element(funcThatReturnArray (), 0);

      иной вопрос, что такие грабельки хоть и имели место быть, обычно носили короткие имена.
      Ответить
      • Правильно, нагенерим массив и выбросим все элементы, кроме одного. GC наверняка обрадуется шматку памяти
        Ответить
        • как по мне, то вызов одной функции более читабелен и компактен, чем дефолтное получение нулевого элемента с помощью такого вот "кода":
          $x = funcThatReturnArray ();
          $x= $x[0];

          а результат один - мы в любом случае сгенерировали массив, в любом случае выкинули все элементы, кроме одного. gc в любом случае обрадовался куску памяти.
          Ответить
          • я не о функции как таковой, а о причине её написания: зачем создавать массив там, где нужно одно значение?
            Ответить
            • то есть в случае, если надо получить первый элемент массива, то вместо использования готовой функции и получения первого элемента массива надо писать свои грабли?
              Ответить
          • учитывая что фун-я использовалась примерно так:

            $arr = explode(",",@$_COOKIE['answers'],-1);
            $count_answers = sizeof(@$arr)-1;
            $last_answer = @$this->return_array_element(@$arr,$count_answe rs);
            Ответить
            • маловато собачек как-то. так намного лучше будет:
              @$arr = explode(",",@$_COOKIE['answers'],-1);
              @$count_answers = @sizeof(@$arr)-1;
              @$last_answer = @$this->return_array_element (@$arr, @$count_answers);
              Ответить
    • ну да.
      а так же лучше чем echo '123';
      может быть только
      function returnecho ($var)
      {
      echo $var;
      }
      returnecho ('123');

      внатуре, оптимизация хуле! :D
      Ответить

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