TheShock - возникает сомнение, возникает. Потому-что сегодня он напишет Код (Text): preg_match ($regexp, $string, $match); а завтра Код (Text): preg_match ($regexp, $string, $match); <разный код> if (условие) preg_match ($regexp, $string, $match); <угадай, что будет в $match> Проблема у программистов другая - они редко дальше своего носа видят. Но это уже отдельная тема для другого форума.
А философия языка - это отмаза из серии "PHP - недоязык". Есть философия программиста, а язык - это инструмент.
MiksIr, а потом вы скажете, что «единственная моя цель — запутать следующего за мной программиста». Меня достает такая конструкция: PHP: <? $value = isset($_GET['value']) ? $_GET['value'] : null; которую я пишу во всему проекту. согласитесь, так намного красивее: PHP: <? $value = def ($_GET['value'], null); Хотя, думаю, правильнее было бы как-то так: PHP: <? $value = Request::get('value');
Третье то оно и есть правильное. Первое хоть и длиннее, но читается значительно лучше второго, тем более что приведенное тут - настолько частный случай, что вообще с трудом придумываю его применение. Типа, для более красивых дальнейших проверок "что нам делать, если параметр не пришел"? В конце концов где-то правильнее даже собака будет, чем дополнительная инициализация. Например, такой код (если уж говорить о "однофайловом" программировании Код (Text): myfunc(@$_GET['value']); с моей точки зрения более правильный и понятный, чем Код (Text): $value = isset($_GET['value']) ? $_GET['value'] : null; myfunc($value); ибо говорит, что "мы знаем, что параметра может и не быть, но оставляем этот анализ на усмотрение myfunc". Потенциально натыкаемся на грабли "а если myfunc не делает проверок", но так как речь об "однофайловом" программинге - вероятность такого мала, а есть поект хоть чуток крупнее - там уже аналоги 3-го варианта, и никак больше.