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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
$this->load->model('Bimail');
			$this->Bimail->beautymail(
					$this->adminmail,
					$this->input->post('mail'),
					$$this->adminsubject,
					$this->input->post('name'),
					$this->input->post('text'));
			$this->redirect('conn/ok');

Как видите я написал два знака доллара на 5 строке. При таком вызове фукции у мея виснет httpd.exe (это Apach). Кто может объяснить почему?
И еще: почему РНР не выдает ошибки?
*Провернуть такую ошибку в простом коде не получилось.

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

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

  • $$i — это переменная переменная. Т.е. переменная с изменяемым именем. А вот как хренеет пых в ответ на то, что в качестве имени переменной — объект (в смысле, его свойство) — это уже другой вопрос. Наверное, потому и не выдаёт ошибок, что формально так можно, а фактически — вплоть до завеса апача.
    Ответить
    • А как использовать эту возможность, и зачем? Пример кода можно?
      Ответить
      • Я ни разу не пользовался. Знаю только, что возможность существует. И помню, что когда о ней читал, то и примеры приводились. Так что если интересно — гугль в помощь.
        Ответить
      • вернитесь обратно в школу. оба. вещь прикольно. рульно фурыкает. только злоупотреблять не стоит а то потом фиг свой говнокод когда отдебажишь
        Ответить
        • Wave ответил по теме. Вы же не ответили ничего релевантного. Кто вы после этого? Конечно же пидарасы!
          Ответить
      • $varname = "foo";
        $foo = 5;
        echo $$varname; // 5

        а вот зачем использовать не понятно, самый великий костыль пхп
        Ответить
          • В какой бы пост не глянул, только о петушении и речь.
            Ответить
          • Ого! Слово «петушение» в 2010-м году, т. е. ещё до форса «питушни».
            Ответить
            • Надо провести петуализ текстов ГК: искать всю питушню с кобенацией "п*ту" и смотреть, что там было во времени.
              Ответить
              • Эту тему с питушнёй и питухами Царь придумал.

                > с кобенацией "п*ту"

                Кстати «питушки» это вчерашний день, в последних царских посланиях они эволюционировали в «птушников».
                Ответить
                • > в последних царских посланиях они эволюционировали в «птушников».
                  Математику в ПТУзах учат только в раш-ке.
                  Ответить
                  • Он просто мутировал, чтобы банхаммером не так больно били.
                    Мы-то понимаем что значит п-тушок.

                    >в ПТУзах
                    Наконец-то я понял что означает загадочный термин «питуз»!
                    Ответить
                • Царь с Бормандом же только придали питушне популярности, а до этого она концентрировалась по углам и готова была вылупиться.
                  Ответить
                    • Нет, я обнаружил, что почта, к которой привязан ГК, не умерла, и решил посмотреть, что мне писали, пока меня не было.
                      Ответить
                • Не провёл. Хотя, все данные за то время есть, можно и провести.
                  Ответить
          • блядть

            слово "питущение" было еще 10 лет назад1!!
            Ответить
        • что же получается? $$somevar равняется последней созданной или присвоеной переменной? Это идиотизм, и зачем знать о таком? Спасибо за пример.
          Ответить
          • Интересное умозаключение.
            Как пришел к такому результату?
            Ответить
          • омг, самый тривиальный пример, который смог бы понять даже гуманитарий...

            но видать реальным пОцанам этого не понять... xD
            Ответить
        • Почему костыль? Когда-то я видел код, где это применялось и было действительно нужно.
          А если и не нужно, то не мешает
          Ответить
        • Всё чем пользоваться не умеете - для вас, мартышек зло
          Ответить
        • Это называется "ссылка", чувак:)
          Ответить
          • Ссылка в пэхапэ по амперсанду, не?
            Это просто что-то вроде рефлексии, всё равно что сделать globals()[variable_name] в «Питоне».
            Ответить
            • да, я еблан. Это можно использовать как ссылку в рамках одной области видимости, но это костыль
              Ответить
                • с перлом перапутал
                  our $var = "foo";
                  our $refVar = \$var;
                  
                  print ${$refVar}, ${$main::{'var'}};


                  тут правда всё гораздо тоньше. refVar это реально ссылка, а второе это символ в пакете main (именно потому our), который разыменовали
                  Ответить
      • И как раз только что встретил пример кода. Движок писался из расчёта на register_globals, потом register_globals на хостинге выключили и человек не мудрствуя лукаво сделал такой костылик чтобы не переписывать свой код.
        while($elem=each($_GET)){
          $var=$elem["key"];
          $$var=$elem["value"];
        }
        while($elem=each($_POST)){
          $var=$elem["key"];
          $$var=$elem["value"];
        Ответить
          • А там движок очень старый. Не то что MVC, а просто без ООП. Смесь html с php, запросы к базе прям на месте пишутся. В общем, back to php 3-4.
            Ответить
            • дауш, переписывать пришлось бы много. легче по-быстрому подставить костыль
              Ответить
            • Я весной такой сайт написал для диплома, и конечно же, денег. Я имею ввиду смесь HTML + PHP + SQL в куче. Ну как не умничай а поднять самому с первого раза новый фреймворк с CMS очень сложно. ( а использовать Drupal || MZZ было запрещено)
              Ответить
              • mzz вроде бы как раз фреймворк, а не cms. Не суть.
                Будь готов к тому, что если в будущем этот сайт кому-то постороннему понадобится сопровождать и дорабатывать, на тебя в глаза или за глаза выльются тонны грязи.
                Ответить
                • Я и имел ввиду что фреймворки или цмс были запрещены. Я сам уже не разберу что там и как сделано, это просто ужас. Но сюда адрес сайта не дам, а то доброжелатели будут испытывать на прочность, еще сломают)))
                  Ответить
                • Ну ты идиот! Диплом для себя писал! Конечно защитил на высшую оценку! Я закончил академию, теперь я дизайнер с дипломом...но на практике программист.
                  Ответить
                  • А в таком случае, если ты , Царителли учился, что ж ты такой код сбацал?
                    Ответить
        • в отдельный пост ))

          как програмить, если хотим, чтоб нас сломали ))
          Ответить
          • Зачем в отдельный, если это всего лишь пляски вокруг register_globals?
            Да и насчёт “сломали” — всё-таки больше обобщение. В каком-то конкретном случае вполне может оказаться и без дыр.
            Ответить
        • each — это самая ненужная функция. Не надо её использовать. Мы не в 1971-м году живём, чтобы пользоваться функциями с глобальным скрытым счётчиком.
          Ответить
          • Мне вот интересно, что за нашествие некрофилов на говнокод пришло?
            Ответить
          • В пых он протек из перла, там each тоже стейтфул.

            Перл вообще богат на инструкции с глобальным стейтом, этакие "статические автоматические переменные". Одну из них (флип флоп) перл унаследовал от awk, и передал руби:)
            Ответить
  • мде
    все те же рачки
    все те же пхп-говноеды
    ничего не меняется
    Ответить
    • >>все те же пхп-говноеды
      +1

      как по мне так вообще почти все с пометкой - "помогите - не работает", "вот моя лаба" и "задание сделать то-то -- зацените как я просрался"- в минус и на перегной - за унылостью..
      Ответить
        • Так ты неадекват номер 1. Только пиздиш, а сам наверное нихрена не знаешь. (меньше меня точно). Баба базарная, ты наверно на базаре и работаешь.
          Ответить
          • в попе снова свербит, пхп-раб? привыкнешь

            угу меньше тебя, особенно вспоминая сколько раз я тебя говном кормил, не наелся?

            показательно уже то, что ты среагировал на мой пост о неадекватах, сразу видно - попе больно, когда такие посты читаешь.
            Ответить
            • да какой я раб? это мой выбор - РНР, и пишу я себе код за бесплатно. Ну а таких как ты я знаю. Можешь умничать только в интернете, в чате. А вдруг наедут на тебя "реальные" пацаны, то и слова в тему не сможешь сказать. Так что заканчивай, иди на улице потусуйся.
              Ответить
              • >это мой выбор - РНР, и пишу я себе код за бесплатно.
                сколько раз тебе повторять, правильно не 'для себя за бесплатно(sic!)', а 'я обезьяна, сижу на шее у предков, мозгов хватило только на похапэ', прими уже правду, хотя я понимаю - тебе легче нассать себе в глаза.

                только что с улички, а поцанчики на меня не наезжают, да и нету их тут нихуя, а ты, видать, из элитного 'раёна' Бутово? лол =)
                Ответить
            • >в попе снова свербит, пхп-раб?

              возвращайся на говнокод, будем ставить на место зазнавшееся пыхобыдло
              Ответить
              • Если запятую убрать, то будет похоже на какую-то замануху на программерские курсы )))
                Ответить
                • Или в очередной заебавший стартап:

                  Ты -- ниндзя-девопёс, а в попе снова свербит пхп-раб?

                  Приходи к нам, будем ставить на место зазнавшееся пыхобыдло.
                  Ответить
      • Поддерживаю. По мне так всяческие "помогите не работает" надо сразу же удалять без разговоров и всё. Оффтоп есть оффтоп, надо, как тут наш сеошник выдал, блюсти политику поддержания высокой релевантности контента.
        Ответить
          • Если совсем худо, ты нажми на кнопочку... Это нужно лишь для самоуспокоения. Возможно, эта кнопка запускает ядерные боеголовки.
            Ответить
      • +1, похоже история БАШа повторяется...

        - осталось получить премию рунета и ГК утонет в унынии =(
        Ответить
      • >>>скиллованый говнокодер инкризон
        да его в мемы гкода уже можно записывать вместе с Max Pro и Уебкиллом...

        >>>показательно уже то, что ты среагировал на мой пост о неадекватах
        )))) такие посты как лакмус...
        вон в каком-то треде двое заминусовали ф-цию isPidor(), что кагбе намекает...
        Ответить
        • OMG!! их уже трое )))
          Такие провокационные посты помогают отдетектить ахтунгов и прочую нечисть.
          Ответить
          • насамом деле их больше, так как наверняка кто-то и плюсовал
            Ответить
            • угу, а кто и не плюсовал, и не минусовал, те латентные...
              Ответить
            • Увы я стал популярен. Уже кто - то создал фейковый профайл. Молодцы так держать. Популярность не повредит, я на ней заработаю.
              Ответить
              • http://www.youtube.com/user/Increazon#p/a

                Имя: Volodymyr
                A am here just for interest for me. 
                But now i updating my profile, make it less virtual, to find some interesting friends, links. 
                I love U. S. America.

                Место жительства: San Francisko

                И ВНЕЗАПНО!

                http://www.weblancer.net/users/Increazon/projects/
                П. Владимир (Increazon)
                22 года

                * Украина (!)
                * Полтава (!)

                Хохол лижет анусы пиндосам и мечтает о Сан Полтава 😀
                Ответить
                • АХАХАХАХА дианон success

                  >San FrancisKo
                  я валяюсь =) ошибка в названии города своей мечты, пять баллов нах.
                  Ответить
                • Образцовый идиоты. Начинай искать мой говно сайт по Whois. там тоже есть имя.
                  Ответить
                  • А вообще пускай. Может вы еще папаци наймете чтобы следили за мной. Кто его знает, может я голый хожу по квартире))
                    Ответить
                • Первый пост, где тебя не заминусовали.. Мои поздравления... )))
                  Тебе больше кампроматы копать а не кодом какать.
                  Ответить
      • в чужом коде кило говна видят, а в своем не замечают... где тут скилованность, если про ссылочные переменные мы не в курсе не то что в пехепе, но и в принципе?
        Ответить
  • добавте кто-то еще 1 минус, дабы это ГК исчезло навек.
    Ответить
  • а шо таки в похапэ нету ссылок? ($$ - оператор разыменования ссылки на скаляр насколько я знаю)
    Ответить
    • в пхп вообще нету типов *ужс*, тип как все знают - контекстом определяется;

      а ссылочная переменная может быть такой:

      $ptr_var = &$var;
      - в данном случае $ptr_var и $var будут ссылаться на один и тот же участок памяти)
      Ответить
      • кстати, подумываю, что сия конструкция не так уж необходима... особенно что наконец разрабы додумались параметры передавать и возвращать по ссылке, а не по значению... если только в особых специальных случаях...
        примерно, как обходятся без указателей

        а вот разыменование позволяет сохранить динамичность без средств отражения
        Ответить
  • Ночью говнокод на РНР добавил, расписал какой я умный. Пришло даже 2 ответа(на почту уведомления) но утром обнаружил кто код бесследно удален. Написал обузу с матами страйкеру. Увы, но для меня этот сайт уплывет в унынии. Я потратил Драгоценных 20 минут чтобы сделать нормальный пост а он тупо исчез без предупреждения. Так что придется нам попрощаться навсегда, ведь время - деньги!
    Ответить
  • $ ожидает строку с именем пельменной. Соберём испытательный стенд:
    <?php
    
    class Pituh {
        public $kurochka = 'Ko-ko-ko';
        public function kurarek() {
            echo strval($this);
        }
    }
    
    $koko = new Pituh();
    
    $koko->kurarek();

    Функция strval пытается получить строку из $this. Что мы видим?

    https://ideone.com/fPj6rp

    PHP Recoverable fatal error: Object of class Pituh could not be converted to string
    или
    Catchable fatal error: Object of class Pituh could not be converted to string

    Тупо выбрасывает ошибку. То же сообщение об ошибке будет, если мы заменим strval($this) на $$this.

    А теперь к классу добавим метод __toString:
    <?php
    
    class Pituh {
        public $kurochka = 'Ko-ko-ko';
        public function kurarek() {
            echo strval($this);
        }
        public function __toString() {
            return 'kudah';
        }
    }
    
    $koko = new Pituh();
    
    $koko->kurarek();


    https://ideone.com/WmNr4D

    Что же вернёт strval($this)? Вернёт оно то, что возвращает метод __toString. А выражение $$this теперь вернёт значение переменной $kudah:
    <?php
     
    class Pituh {
    	public $kurochka = 'Ko-ko-ko';
        public function kurarek() {
        	global $kudah;
            echo $$this;
        }
        public function __toString() {
            return 'kudah';
        }
    }
     
    $koko = new Pituh();
     
    $kudah = 'Сам дурак';
     
    $koko->kurarek();


    https://ideone.com/HkNFhC

    Да, пельменную придётся объявлять внутри метода или рыгать внутрь с помощью global, иначе выпадет нотис об отсутствующей пельменной.
    Ответить

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

Из-за тебя ушел bormand, guest!

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


    8