if(!defined)在php中的类内部不起作用



我想定义一个常量,并为此设置一个随机值。请在下方查看我的代码

class ABC {
public function __construct() {
$this->my_constant();
}
public function my_constant(){
define ('RANDOM_CONSTANT', uniqid());
}

}

在这里,我可以称之为随机常数,但问题是每次我都得到不同的值。所以我想修正这个值,它不需要总是改变。所以我尝试了以下

public function my_constant() {
if (! defined('RANDOM_CONSTANT') ) {
define ('RANDOM_CONSTANT', uniqid());
}
}

但是,一旦刷新页面,常量值仍然会发生变化。如何解决这个问题?

但是一旦刷新页面,常量值仍然会更改。如何解决这个问题?

PHP在页面刷新之间不保持任何状态。每个页面加载都是完全生成的干净和新鲜。这意味着您的常量只在页面加载结束时才被定义,然后它将永远被遗忘。

要在页面加载中获得相同的唯一id,您需要使用会话处理,这将使其对每个用户都是唯一的,或者使用某种数据库。

最新更新