在类中使用非常量变量

时间:2016-02-26 17:45:57

标签: php oop

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

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

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

1 个答案:

答案 0 :(得分:0)

有两种方法可以实现这一目标,但一般来说,在调用file_nameblah之前,您需要生成blah2。 (顺便说一下,你的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在两个&#34; blah&#34;之间是相同的。调用