PHP将随机单词存储在字符串中以供多次使用 公共函数生成器域字符串($length=16){ $characters='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz'; $charactersLength=strlen($characters); $randomString=''; 对于($i=0;$igenerateRandomString()并反复使用此变量,而不改变其值。如何执行此操作?

PHP将随机单词存储在字符串中以供多次使用 公共函数生成器域字符串($length=16){ $characters='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz'; $charactersLength=strlen($characters); $randomString=''; 对于($i=0;$igenerateRandomString()并反复使用此变量,而不改变其值。如何执行此操作?,php,Php,我正在寻找一种将其存储在变量中的方法。例如:$random=$this->generateRandomString()并反复使用此变量,而不改变其值。如何执行此操作?在类中创建属性: public function generateRandomString($length = 16) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength

我正在寻找一种将其存储在变量中的方法。例如:
$random=$this->generateRandomString()
并反复使用此变量,而不改变其值。如何执行此操作?

在类中创建属性:

public function generateRandomString($length = 16) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
         $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}
Class-MyClass{
私人$myRandomString;
公共函数生成器域字符串($length=16){
$characters='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz';
$charactersLength=strlen($characters);
$randomString='';
对于($i=0;$i<$length;$i++){
$randomString.=$characters[rand(0,$charactersLength-1)];
}
返回$randomString;
}
公共函数生成(){
$this->myRandomString=$this->generateRandomString();
}
公共函数fetchRandomString(){
返回$this->myRandomString;
}
}
$myClass=新的myClass();
$myClass->generate()//将随机值放入'private$myRandomString'中`
$myValue=$myClass->fetchRandomString()//返回创建的随机字符串
$myAnotherValue=$myClass->fetchRandomString()//返回创建的随机字符串(值仍然相同)

以下是功能调用较少的修订版

Class MyClass {

   private $myRandomString;

   public function generateRandomString($length = 16) {
       $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
       $charactersLength = strlen($characters);
       $randomString = '';
       for ($i = 0; $i < $length; $i++) {
         $randomString .= $characters[rand(0, $charactersLength - 1)];
       }
       return $randomString;
    }

    public function generate() {
         $this->myRandomString = $this->generateRandomString();
    }

    public function fetchRandomString(){
         return $this->myRandomString;
    }

}

$myClass = new MyClass(); 
$myClass->generate(); //Puts the random value in `private $myRandomString`

$myValue = $myClass->fetchRandomString(); //Returns the random string created
$myAnotherValue = $myClass->fetchRandomString(); //Returns the random string created (still same value)
类号发电机{
私人$length=16;
私有$myRandomString=null;
函数构造($length){
$this->length=$length;
}
公共函数GeneratorAndomString(){
$characters='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz';
$charactersLength=strlen($characters);
$randomString='';
对于($i=0;$i<$this->length;$i++){
$randomString.=$characters[rand(0,$charactersLength-1)];
}
返回$randomString;
}
公共函数fetchRandomString(){
如果($this->myRandomString===null){
$this->myRandomString=$this->generateRandomString();
}
返回$this->myRandomString;
}
}
//用法
$myClass=新的发电机编号(16);
$randomStr=$myClass->fetch随机ingString();
echo$str//输出示例:cqualeylzxlbwpdw

在类中设置属性,
public$this->random
您可以使用file、db、memcache、redis或我的开源项目到底是什么问题?调用函数?将其返回值赋给变量?保持这个变量不变?跨多个请求持久化该变量?将值存储在全局变量中创建一个局部静态变量,并仅在第一次调用时执行生成。在连续调用中,只需返回该变量
class NumberGenerator {
   private $length = 16;
   private $myRandomString = null;

   function __construct($length){
     $this->length = $length;
   }

   public function generateRandomString() {
       $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
       $charactersLength = strlen($characters);
       $randomString = '';
       for ($i = 0; $i < $this->length; $i++) {
         $randomString .= $characters[rand(0, $charactersLength - 1)];
       }
       return $randomString;
   }

    public function fetchRandomString(){
        if($this->myRandomString === null){
           $this->myRandomString = $this->generateRandomString(); 
        }
         return $this->myRandomString;
    }
}


//usage
$myClass = new NumberGenerator (16); 
$randomStr = $myClass->fetchRandomString();
echo $randomStr;      //example output: CqaLEYILzxLbWPDw