вот захотелось поиграться с логическими операторами, с присваиванием и сделать что-то реально полезное…
родилась у меня идейка сделать функцию, в которую можно передавать параметры по схеме:
либо строку, либо пару ключ/значение или просто массив с парой значений…
код в цвете
dumpz.org/2626
… написал, понял что ни разу не прав и сделал без извращений… теперь в функцию можно передавать просто либо 1, либо 2 параметра вот и все…
потратил я на это 10 минут, больно захотелось поиграться с логическими операторами… может кому интересно в какой НЕ читаемый код это может вылиться… уверен, что если сидеть пол часа, то туда можно накрутить практически любой сложности монстров…
только этих монстров никому не понять будет…
приведены они здесь чтоб каждый мог посмотреть насколько неприятными они могут стать со стороны и перед тем как писать задумался. делюсь экспой — ловите халява.
родилась у меня идейка сделать функцию, в которую можно передавать параметры по схеме:
либо строку, либо пару ключ/значение или просто массив с парой значений…
код в цвете
dumpz.org/2626
… написал, понял что ни разу не прав и сделал без извращений… теперь в функцию можно передавать просто либо 1, либо 2 параметра вот и все…
потратил я на это 10 минут, больно захотелось поиграться с логическими операторами… может кому интересно в какой НЕ читаемый код это может вылиться… уверен, что если сидеть пол часа, то туда можно накрутить практически любой сложности монстров…
function choise($index){ $types=array("model", "brand"); if ( !((count($index)==2 and in_array($type=$index[0], $types) and ($id=is_int($index[1])?$index[1]:0 and !$keyword=false or $keyword=$index[1] and !$id=false)) or (count($index)==1 and in_array($type=key($index), $types) and (($id=is_int(current($index))?current($index):0 and !$keyword=false) or ($keyword=current($index) and !$id=false))) or ($type=false or $id=false or $keyword=false)) ){ echo 'incorrect format'."\n"; return; } echo '$type='; var_dump($type); echo '$keyword='; var_dump($keyword); echo '$id='; var_dump($id); echo '-------------'."\n"; } choise(array('model'=>5)); choise(array('model', 5)); choise(array('model', 'bmw')); choise(array('model'=>'bmw')); choise(array('m'=>'bmw')); choise(array('m', 'bmw')); choise(array('model', 'bmw', 5));
только этих монстров никому не понять будет…
приведены они здесь чтоб каждый мог посмотреть насколько неприятными они могут стать со стороны и перед тем как писать задумался. делюсь экспой — ловите халява.