6 PHP трюков, как сделать код короче

Недавно нашел англоязычную статью, в которой описывались приемы сокращения PHP-кода. Признаюсь, некоторые методы мне были известны, а о некоторых я даже не подозревал. Поэтому решили выложить русскоязычный вариант статьи, думаю Вы найдете в ней что-то новое для себя.


PHP — хороший язык, но в нем всегда полно сюрпризов. И сегодня я увидел интересную статью в блоге Арнольда Дэниэлса. Он рассуждает о «временных переменных» в РНР. Этот прием полезен для «ленивых» разработчиков, которые даже не задумываются о названиях переменных. Они предпочитают такое наименование, как «${0}» и «0» — ведь это хорошее название для переменной, почему нет…

Но я уверен, что когда нет переменной, нет и проблемы. Поэтому приведу несколько приемов, которые делают Ваш код короче и труднее для восприятия 🙂
Используйте || (или) и && (и) вместо if

Много кода:
$status = fwrite($h, ‘some text’);
if(!$status) {
log(‘Writing failed’);
}

Меньше кода:
${0} = fwrite($h, ‘some text’);
if(!${0}) log(‘Writing failed’);

Еще меньше кода:
fwrite($h, ‘some text’) or log(‘Writing failed’);
Используйте «тернарный оператор»

Много кода:
if($age < 16) {
$message = ‘Welcome!’;
}
else {
$message = ‘You are too old!’;
}

Меньше кода:
$message = ‘You are too old!’;
if($age < 16) {
$message = ‘Welcome!’;
}

Еще меньше кода:
$message = ($age < 16) ? ‘Welcome!’ : ‘You are too old!’;
Используйте «for» вместо «while»

Много кода:
$i = 0;
while($i < 100) {
$source[] = $target[$i];
$i += 2;
}

Меньше кода:
for($i = 0; $i < 100; $source[] = $target[$i+=2]);

В некоторых случаях PHP требует от вас создания переменной. Например, при получении массива элементов, когда массив возвращается функцией:
$ext = pathinfo(‘file.png’)[‘extension’];

Результат: Parse error: syntax error, unexpected ’[‘ in … on line …

Чтобы справиться с этими ситуациями Вы можете создать несколько небольших функций для быстрого вызова часто используемых операций:
// Возвращает ссылку на создаваемый объект
function &r($v) {
return $v;
}

// Возвращает сдвиг массива
function &a(&$a, $i) {
return $a[$i];
}
Исследуйте язык, который используете

PHP — очень мощный язык и содержит множество функций и интересных аспектов, которые могут сделать Ваш код рациональнее и короче.
Пишите комментарии

В тех случаях, когда лучше написать больше кода и потом легко его читать, не ленитесь. Потратьте на пару секунд больше и напишите комментарий и более читаемую структуру. Это единственный прием из списка, который действительно может помочь сэкономить часы, а не минуты.

Share