return及include优化

发布:2017-07-09 19:28   点击632次   评论:0
http://www.jb51.net/article/55300.htm

分享下PHP return语句的另一个作用,在bbPress的代码中看到的一个奇葩使用方法。
一直以为,return只能出现在函数中,直到看了bbPress的代码(一下测试):

$a = empty($_GET['a']) ? 0 : $_GET['a'];
if($a){
echo ' --- End ---
';   
return;
}else{
echo '...
'; 
}
echo ' ... More ... ';


难道 return 还能出现在函数之外?这在C语言是无法想象的。
如果在一个函数中调用 return 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return 也会终止 eval() 语句或者脚本文件的执行。

http://php.net/return
如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被 include 的或者 require 的,则控制交回调用文件。此外,如果当前脚本是被 include 的,则 return 的值会被当作 include 调用的返回值。如果在主脚本文件中调用 return,则脚本中止运行。如果当前脚本文件是在 php.ini 中的配置选项 auto_prepend_file 或者 auto_append_file 所指定的,则此脚本文件中止运行。

return $cfg();
$cfg = include('./cfg.php');




所以为了保险,return返回值是能不加括号就不加括号。 从上面的列子可以推知require include后面加括号和不加括号的区别: include “a.php”;  //直接将a.php包含进来 include(“a.php”);//首先计算’(“a.php”)’的值,其结果肯定是a.php,然后在include “a.php” require的道理和include一模一样。 因此,include和require后面的文件路径加不加引号对执行结果是没有影响的(不存在引用的问题),但是增加了执行步骤,降低了效率。 综合以上的分析,无论是include,require还是return,对于这样的操作符,后面能不加括号就不加括号。include和require后面加不加括号对执行结果没有区别,但是效率较低。而return 在返回引用的时候加上括号不但效率低而且会造成逻辑错误,

http://blog.csdn.net/u011598153/article/details/34087141
include和require 性能优化

http://www.laruence.com/2012/09/12/2765.html
再一次, 不要使用(include/require)_once

排除这些技术因素, 我也一直认为, 我们应该使用include, 而不是include_once, 因为我们完全能做到自己规划, 一个文件只被加载一次. 还可以借助自动加载, 来做到这一点.
你使用include_once, 只能证明, 你对自己的代码没信心.
所以, 建议大家, 不要再使用include_once


评论(0条)   >>发布 评论列表

关于 GitHub 导航 部门 反馈

提示:`/chn.php`入口数据仅为演示功能,不构成任何交易凭证,也不承担相关风险和责任!

Copyright © 2011-2018 xxxxx.com All rights reserved. 粤ICP备07020797号.

Done:11.300/43.491(ms); 6(queries)/2.224(MB); Tpl:comm:news/detail; Upd:2019-08-20 09:47:35