"PHP" / Говнокод #13687 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
/**
* Magic method __get()
* @param string $name The name of the payment options properties
* @return string
*/
public function &__get($name)
{ 
	    if (isset($this->_properties[$name]) && is_scalar($this->_properties[$name]))
	    {
	        $property = $this->_properties[$name];
	    }
	    else
	    {
	        $property = &$this->_properties[$name];
	    }
	    
	    return $property;
}

Запостил: dimkich dimkich, (Updated )

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

    • 1) если в $this->_properties нет ключа $name, то будет warning

      2) круто будет использовать таким образом
      к примеру есть баг "выводится 1 а должно 2"
      Код:
      $o->property = [2];
      $a = $o->property;
      /** 1000 строк кода */
      $a = [1];
      /** 1000 строк кода */
      echo $o->property[0];
      Ответить
          • А array("test" => "foo", "bar" => "baz") они тоже наконец-то научились сокращать до какого-нибудь [ "test" => "foo", "bar" => "baz" ]? 🙂

            Не прошло и 18 лет, как пых научился красиво описывать массивы...
            Ответить
            • и чего тут красивого ? array("key"=>"val"); сразу видно чего тут делается а то делают из пышечки не пойми чего. прям лисп какой то получается. Лучше чего бы полезного сделали бы.
              Ответить
              • В питоне с пёрлом всю жизнь массивы скобками объявлялись. Даже в сишке с явой так, и никто не говорил, что это непонятно... Сравните код:
                $fields = array(
                    array("name" => "id", "options" => array("primary" => true))
                    array("name" => "test", "options" => array())
                );
                
                vs
                
                $fields = [
                    ["name" => "id", "options" => ["primary" => true]]
                    ["name" => "test", "options" => []]
                ];
                Ну что тут непонятного? Синтаксис абсолютно ни с чем не конфликтует, короче, нагляднее... Чем array то понятнее? Он ведь даже не функция, а какая-то неведомая хуйня не менее специальная конструкция, в аргументах которой разрешили юзать "a" => "b".

                > Лучше чего бы полезного сделали бы.
                Выпилили к хуям все опции типа magic_quotes и им подобных 😉 Жаль, что этого не случится никогда.

                P.S. Вам дали возможность красиво описывать всякие декларативные таблички, так нет, надо дальше жрать говно кактус, и утверждать, что array() чем-то понятнее, чем [].
                Ответить
                • P.P.S. Ни в одном языке кроме пыхи мне не попадалась такая форма записи массивных литералов как array("foo", "bar")... И когда я писал для своего небольшого проекта на PHP конфигурашку, в которой было довольно много декларативных описаний через массивчики... я плакал кровавыми слезами, глядя на эти array(array(array)))...
                  Ответить
                • >, и утверждать, что array() чем-то понятнее, чем [].
                  Я с ними согласен. Ничего крамольного в array не вижу.
                  [] - обычный сахар.
                  Ответить
                  • > [] - обычный сахар.
                    for и while это тоже самый обычный сахар, который можно реализовать через if и goto.
                    Ответить
                  • Доо, а теперь напиши структуру из списков и хеш-массивов на пыхе и, скажем, js и сравни.
                    Ответить
                    • в пыхе насколько я знаю нет ни списков, ни хешей, там какая-то неведомая хуета
                      Ответить
                      • Ну этот array и как ассоциативный массив можно юзать, т.к. есть быстрый доступ по ключам. И как список (не связный список, а как в питоне), т.к. порядок она сохраняет, и foreach обходит элементы в том же порядке, как их засунули. Поэтому почему бы и не описать структуру из списков и хеш-массивов? Выше я даже писал пример подобной структуры:
                        $fields = array(
                            array("name" => "id", "options" => array("primary" => true))
                            array("name" => "test", "options" => array())
                        );
                        > неведомая хуета
                        А вот это точное описание пыховского array... там есть 14(?) разных функций для его сортировки.
                        Ответить
                • $fields = [
                  ["name" => "id", ....
                  подобные конструкции я юзаю в js.
                  там есть еще конструкция {}
                  Иногда случаются косяки с тем что путаются скобки.
                  В пыхе сделали array наверное для того, что бы в случае большой вложенности юзали классы. Лично я как не юзал $array= [x]; так и не буду.
                  Ответить
              • >>>прям лисп какой то получается
                Не лисп, а кресты. Эти упрощения - дорога в ад.
                #12488

                >Лучше чего бы полезного сделали бы.
                Точно.
                Ответить
                • > #12488
                  Ну в крестах там пиздец какой-то замутили. С одной стороны, имхо, ввели полезную фишку - сам initializer list, по которому можно бегать итератором. И есть бесполезная херня в виде замены Some a({1,2,3}) на Some a{1,2,3}.
                  Ответить
                  • Не, универсальная инициализация - норм, жаль только, что её не сразу ввели в плюсы, а теперь стало ещё больше способов инициализации, и старые способы никогда не будут выпилены.
                    меня всегда бесил "баг"
                    my_type lol_you(); // It's a function, dude!
                    my_type lol_me(1); // it' an object contruction, dude!
                    зато теперь
                    my_type lol_you{}; // okay...
                    my_type lol_me{1}; // okay...
                    Ответить
                • Ну кресты в отличии от джавы бездарям типа тебя не освоить
                  Ответить
            • А. П. Чехов "Письмо к учёному соседу"
              Село Блины-Съедены

              Дорогой Соседушка.
              Максим... (забыл как по батюшке, извените великодушно!) Извените и простите меня старого старикашку и нелепую душу человеческую за то, что осмеливаюсь Вас беспокоить своим жалким письменным лепетом.
              Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8