Недавно нашел англоязычную статью, в которой описывались приемы сокращения PHP-кода. Признаюсь, некоторые методы мне были известны, а о некоторых я даже не подозревал.
«${0}» и «0» — ведь это хорошее название для переменной, почему нет… Как вам ???
Но я уверен, что когда нет переменной, нет и проблемы. Поэтому приведу несколько приемов, которые делают Ваш код короче и труднее для восприятия :)
1.Используйте || (или) и && (и) вместо 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');
2.Используйте «тернарный оператор»
Много кода:
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!';
3.Используйте «for» вместо «while»
Много кода:
$i = 0;
while($i < 100) {
$source[] = $target[$i];
$i += 2;
}
Меньше кода:
for($i = 0; $i < 100; $source[] = $target[$i+=2]);
4.В некоторых случаях 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];
}
5.Исследуйте язык, который используете
PHP — очень мощный язык и содержит множество функций и интересных аспектов, которые могут сделать Ваш код рациональнее и короче.
6.Пишите комментарии
В тех случаях, когда лучше написать больше кода и потом легко его читать, не ленитесь. Потратьте на пару секунд больше и напишите комментарий и более читаемую структуру. Это единственный прием из списка, который действительно может помочь сэкономить часы, а не минуты.
«${0}» и «0» — ведь это хорошее название для переменной, почему нет… Как вам ???
Но я уверен, что когда нет переменной, нет и проблемы. Поэтому приведу несколько приемов, которые делают Ваш код короче и труднее для восприятия :)
1.Используйте || (или) и && (и) вместо 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');
2.Используйте «тернарный оператор»
Много кода:
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!';
3.Используйте «for» вместо «while»
Много кода:
$i = 0;
while($i < 100) {
$source[] = $target[$i];
$i += 2;
}
Меньше кода:
for($i = 0; $i < 100; $source[] = $target[$i+=2]);
4.В некоторых случаях 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];
}
5.Исследуйте язык, который используете
PHP — очень мощный язык и содержит множество функций и интересных аспектов, которые могут сделать Ваш код рациональнее и короче.
6.Пишите комментарии
В тех случаях, когда лучше написать больше кода и потом легко его читать, не ленитесь. Потратьте на пару секунд больше и напишите комментарий и более читаемую структуру. Это единственный прием из списка, который действительно может помочь сэкономить часы, а не минуты.