为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下该如何避免使用php程式中的require_once語法?求答案

请问一下该如何避免使用php程式中的require_once語法?求答案

PHP C
繁星点点滴滴 2019-10-21 16:14:57
如何避免使用php程式中的require_once語法?求答案
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

使用__autoload php5可以使用__autoload來避免require,用的好的話,代碼裡頭甚至看不到幾個require,實在是安逸啊。測試結果顯示,使用__autoload之後的new Foo; 比require_once 『foo.php』; new Foo; 大概要快3倍左右。
補充:為了避免autoload衝突,可以考慮使用spl_autoload_register(PHP 5 >= 5.1.2)來改變魔術函數__autoload的行為。
使用defined檢驗是否載入過 在代碼開頭使用defined檢驗是否定義過對應的常量,如果有的話,直接return。
<?phpif(!defined('_MYCLASS_'))return;define('_MYCLASS_', 1);
class MyClass { ... }?>測試了一下,defined的效能也不是太好…
require前檢查 用class_exists或是function_exists檢查一下,確認沒有載入過再出手,至少比require_once能快上3倍。

查看完整回答
反对 回复 2019-10-26
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

include 包含不上是notice,不影响下面脚本执行。
require 包含错误是致命错误,脚本终止。
一个页面多次包含某文件会报错,
require_once和include_once可以多次包含,不报错。


查看完整回答
反对 回复 2019-10-26
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

a.php 文件
$db_server="localhost";

b.php 文件

require_once("a.php");
class MysqlConn {
  private $a;
  public function __construct($canshu) {
    $this->a=$canshu;
//echo $this->a;
  }
}
$m=new MysqlConn($db_server);

c.php文件

 require_once("b.php");
  echo $db_server;


查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 544 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信