[英]use function __construct() for static functions?
我想使用這種方式,但是我有一個問題, function __construct()
不起作用? 為什么呢
class user{
function __construct(){
define('HI', 'hello');
}
static function say_hi(){
echo HI ;
}
}
user::say_hi();// Out put should be : hello
僅在初始化類時調用構造函數,例如$user = new user();
。 調用靜態函數時,不會初始化類,因此不會調用構造函數。
僅當您的PHP版本> = 7時,才可以這樣做
class User{
function __construct(){
define('HI', 'hello');
}
static function say_hi(){
echo HI ;
}
}
(new User())::say_hi();
您必須在say_hi()
方法內創建類user
的新實例。 當您在say_hi()
方法內創建實例時,它將調用構造函數方法並隨后定義常量HI
。
因此,您的代碼應如下所示:
class user{
function __construct(){
define('HI', 'hello');
}
static function say_hi(){
new user();
echo HI ;
}
}
user::say_hi();
輸出:
hello
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.