在类中使用非常量变量


Using non constant variables in a class

我想定义一个变量,该变量在每次调用类时都不会是常量,而是在我的方法中使用常量,例如:

<?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

我希望每次运行时每个函数都是相同的变量,但是当再次调用类以更改值时。我该怎么做?

有几种方法可以实现此目的,但一般来说,您需要在调用blahblah2之前生成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" 调用之间是相同的。