Я воспользовался лучшими практиками в следующей ссылке https://pear.php.net/manual/en/standards.bestpractices.php. Я до сих пор не совсем понимаю, что такое ранняя концепция возврата в PHP. Используется ли она для уменьшения условий отсутствия else в функции PHP? Когда мы должны в идеале использовать эту концепцию и почему она полезна?Какова концепция раннего возврата, полезная в PHP
ответ
Короткий пример, почему это может быть полезным
//some demo function
function connect_to_ftp($host, $user, $pass){
//some check if the host is a valid host, just for demonstration
if (not_a_valid_host($host)) return false;
//if the host is valid, continue executing, no else required
make_ftp_connection($host, $user, $pass);
return true;
}
Это очень грубо и упрощенно тест, но на PHP 7.0.2 test_func1()
составляет 33% быстрее, чем test_func2()
:
<?php
function test_func1()
{
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){return;}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
}
function test_func2()
{
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
if(1===1){}
return;
}
$iterations = 1000000;
$start = microtime(true);
for($i=0; $i<$iterations; ++$i)
{
test_func1();
}
echo (microtime(true)-$start)."\n\n";
$start = microtime(true);
for($i=0; $i<$iterations; ++$i)
{
test_func2();
}
echo (microtime(true)-$start);
Попробуйте сами на http://sandbox.onlinephpfunctions.com/
Как я уже сказал, это упрощено. Представьте себе, что вместо этого функция позволяет нескольким вызовам базы данных сравнивать определенные значения. Если сравнение первого значения делает бесполезные обращения к последующим сравнениям, нет причин продолжать эти сравнения.
Sry, но я на 1 миллионе итерации большой gab !, но с 10000 итерациями его можно игнорировать. И есть много других тингов, которые могут замедлить 1 Мил. iereation, например 'include' или' sql'. Посмотрите на скорость, хорошо, но с 1 Мил. ИТЭР. когда вы получаете более быстрое '===' (не '==') поле, которое выходит за рамки производственного кода, а не тестирует relvant. – JustOnUnderMillions
@JustOnUnderMillions Вы решили 100% игнорировать оба моих парада открытия и закрытия? – MonkeyZeus
Как я уже говорил, я каждый день импортирую огромные данные (от 1 ГБ до 3 ГБ на сценарий) с объемом до 100 ГБ в день. Перемещение XML, CSV и других данных в базу данных со сложной проверкой. И «возвращение ранней концепции» НЕ является узким местом. Но я решил теперь отметить это как мой последний комментарий здесь :) PP: 'почему это полезно' ?? 'Readability' !! И почему PHP7 в вашем ответе вообще ??? Это не вопрос:) 999 – JustOnUnderMillions
все о ЧИСТОЙ КОД readability
function bad($x,$y,$z){
if($x){
if($y){
if($z){
/*code work*/
} else {
return null;
}
} else {
return null;
}
} else {
return null;
}
}
function better(){
if(!$x){
return null;
}
if(!$y){
return null;
}
if(!$z){
return null;
}
/*code work*/
}
function bestversioninthiscase(){
if(!$x || !$y || !$z){
return null;
}
/*code work*/
}
не о ведьме кода запускается.
Sidenote: Есть так много способов для rome. И у него есть небольшая часть Pepsi VS. Cola.
Что более читаемым здесь:
if($x){
#code
}
или
if($x)
{
#code
}
Весело обсуждать эту тему :)
- 1. Какова концепция Р.Ява?
- 2. Какова общая концепция XSS?
- 3. ANCS: Какова концепция PositiveAction?
- 4. Какова концепция Object-Persistence?
- 5. Какова основная концепция WaitHandle?
- 6. Какова концепция сжатия ZIP?
- 7. Какова концепция пространства имен?
- 8. Какова концепция параметров javascript?
- 9. Какова концепция селекторов в быстром?
- 10. Java концепция оператор возврата
- 11. Какова концепция кластеризации веб-приложений?
- 12. Какова максимальная полезная нагрузка в WSMP?
- 13. Какова максимальная полезная нагрузка Worklight в уведомлении?
- 14. Какова основная концепция перегрузки метода
- 15. Какова концепция: Тип - Элемент - Зеркало
- 16. Какова основная концепция рельсов act_as?
- 17. Какова концепция наследования в Objective-C?
- 18. Какова концепция посла в распределенных системах?
- 19. Какова концепция «слабого соответствия» в Scala?
- 20. Какова концепция сохранения идентификатора сеанса в cookie?
- 21. В PHP, концепция массива
- 22. Какова фундаментальная концепция EF, которую я пропускаю?
- 23. Какова концепция промежуточных переменных окружающей среды?
- 24. Какова концепция указателя файла или указателя потока?
- 25. Какова концепция инициализации памяти для массива?
- 26. Какова функция возврата в JavaScript?
- 27. Какова точка возврата в Javascript?
- 28. Какова концепция доступа к данным JSON?
- 29. бронирование гостиниц концепция бронирование номера в PHP
- 30. Какова самая полезная информация для отображения в передней части офиса?
Да, это одна из причин использовать возвращение. Он может прекратить выполнение функции, когда определенное условие не выполняет свои требования. Он может сэкономить несколько строк и сделать ваш код более читаемым. Представьте, что вы выполняете 100 строк кода, когда '$ a == 2', но возвращаете false (ошибка) в' else' в строке 102. –
вы уже ответили сами, это потому, что никакой ненужный код не будет запущен после того, функция возвращается уже. – sietse85