我想定义一个变量,该变量在每次调用类时都不会是常量,而是在我的方法中使用常量,例如:
<?php
class ImageUploadModel
{
public static $file_name = Session::get('id').'_'. md5("abcdefghijklmnopqrstuvxyz123456789") .'_'. uniqid();
public static function blah()
{
echo SELF::file_name; //I want it to be the same as function blah2
}
public static function blah2()
{
echo SELF::file_name; //I want it to be the same as function blah
}
//ended, so the next time it runs I want file_name to be a different value
我希望每次运行时每个函数都是相同的变量,但是当再次调用类以更改值时。我该怎么做?
有几种方法可以实现此目的,但一般来说,您需要在调用blah
或blah2
之前生成file_name
。(顺便说一句,你的 md5 总是相同的值,这使得它毫无用处,imo。我会更改您的哈希值或完全删除它。
<?php
public static function generateFilename ($id) {
self::$file_name = $id . '_' . md5(time()) . '_' . uniqid();
}
然后使用它:
ImageUploadModel::generateFilename(Session::get('id'));
ImageUploadModel::blah();
ImageUploadModel::blah2();
和 ImageUploadModel::$file_name 在两个 "blah" 调用之间是相同的。