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

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function GetBasketUserID($bSkipFUserInit = False)
    {
    		$bSkipFUserInit = ($bSkipFUserInit ? True : False);   //  <----это зачем вообще надо
    
    		if (!array_key_exists("SALE_USER_ID", $_SESSION))
    			$_SESSION["SALE_USER_ID"] = 0;
    
    		CSaleBasket::Init(false, $bSkipFUserInit);
    
    		return $_SESSION["SALE_USER_ID"];
    }

    Стандартная функция модуля интернет-магазина в битригзе. Наткнулся во время поиска неуловимого бага, из-за которого пришлось лезть в кишки CMS

    Запостил: forkhammer, 01 Декабря 2011

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

    • > это зачем вообще надо?
      Это такое хитрое кастование, аналог: $bSkipFUserInit = (bool) $bSkipFUserInit;
      Зачем надо хуй-знает, это ты в кишки лазил вот и скажи нам.
      Ответить
    • if (!array_key_exists("SALE_USER_ID", $_SESSION))
      $_SESSION["SALE_USER_ID"] = 0;
      Просто убивают подобные конструкции.
      Ответить
      • Наверное автор не знает такой маневр
        if(!isset($_SESSION['SALE_USER_ID'])) ....
        Что работает мне кажется в разы быстрее и выглядит по приятнее
        Ответить
        • А как на счет такой магии:
          http://ideone.com/D8tnK
          А насчет: ($bSkipFUserInit ? True : False); еще можно вот так написать !!$bSkipFUserInit
          Ответить
          • насчет магии - годный пример!
            наверное, это чтобы интереснее было дебажить...
            Ответить
          • Даже не ожидал. Действительно Пых полон магии и волшебства. Ps Может это "пасхальное яйцо"
            Ответить
          • в этом и фишка, если ключ есть а значения нету, то isset выдаст false, а если это принципиально важно то можно использовать array_exists ...
            Не знаю, как по мне, так что ключ есть но с null что его вообще нету, обычно одно и тоже, но все зависит от ситуации ...
            Для данного именного кода, isset бы подошел лучше чем array_exists ...
            Ответить
    • $bSkipFUserInit = ($bSkipFUserInit ? True : False); - скорее всего нужна для того чтобы левые данные не подсовывали ...
      Ответить
      • это магическое преобразование используется еще в куче функций этого модуля, причем функции вызывают другие функции и везде эта строка
        Ответить
        • автор наверное один, с большой извилиной или занозой в голове ...
          Ответить
    • Битрикс... Кишки... visceral divination...
      Ответить

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