有關PHP的鍊式調用
天蓬老师
天蓬老师 2017-06-19 09:07:08
0
2
852

我在使用PHP鍊式呼叫時遇到了一個問題:
下面有一個類別「Site」:

<?php
class Site{
public function api(){
require('class.Api.php');
$this->api = new Api();
return $this->api;
}
}
?>

位於「class.Api.php」還有一個類別「Api」:

<?php
class Api{
public function auth(){
//quiet a few
}
public function render(){
//quiet a few
}
}
?>

用下面程式​​碼實例化:

$site = new Site();

再呼叫下列程式碼:

$site->api()->auth();
$site->api()->render();

請問php會重複require()和建立新物件Api嗎?如果是,require()可以用require_once()來取代,但是該如何讓「$site->api()」傳回同一個物件呢?謝謝!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(2)
为情所困

單例模式。

<?php
class Site{
    
    public function api(){
        if (!isset($this->api)) {
            $this->api = new Api();
        }
        return $this->api;
    }
}
?>

只是簡單寫寫,還需要很多最佳化。

typecho

雷雷 雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板