簡體   English   中英

在PHP的靜態函數中更改靜態變量的值

[英]Change the value of a static variable inside of a static function in PHP

php中,如果我在靜態類方法中有一個靜態變量:

class Functions {
    public static function fetch_id() {
       static $id;

       ....
    }
}

我可以從外部更改靜態$ id的值嗎? IE瀏覽器可以做到:

Functions::$id = 'something new';

即使可能,這也不是一個好主意,因為很難告訴誰,何時何地更改了價值。 畢竟,局部變量是局部變量。

如果要全局訪問,則可以將其放在全局上下文中,或者提供一種設置/獲取該局部變量的方法。

如果您不想總是傳遞一個新值,則可以在該方法中使用if語句,如下所示:

class Functions {
    public static function fetch_id($arg=null) {
       static $id=null;
       if($arg!==null){
           $id=$arg;
           return null;
       }
       if( $id===null ){
           return false;
       }
       return $id;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM