играем с логическими операторами
вот захотелось поиграться с логическими операторами, с присваиванием и сделать что-то реально полезное…
родилась у меня идейка сделать функцию, в которую можно передавать параметры по схеме:
либо строку, либо пару ключ/значение или просто массив с парой значений…
код в цвете
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));
только этих монстров никому не понять будет…
приведены они здесь чтоб каждый мог посмотреть насколько неприятными они могут стать со стороны и перед тем как писать задумался. делюсь экспой — ловите халява.