0

我是 php 的新手,为什么这个程序给我们 cll to undefined function error with php。

<?php
class Ksb_CodeGenerator{

public function get_rand_id($length)
{
  if($length>0) 
  { 
  $rand_id="";
   for($i=1; $i<=$length; $i++)
   {
   mt_srand((double)microtime() * 1000000);
   $num = mt_rand(1,36);
   $rand_id .= assign_rand_value($num);
   }
  }
return $rand_id;
} 

 public function assign_rand_value($num)
{
// accepts 1 - 36
  switch($num)
  {
    case "1":
     $rand_value = "a";
    break;
    case "2":
     $rand_value = "b";
    break;
    case "3":
     $rand_value = "c";
    break;
    case "4":
     $rand_value = "d";
    break;
    case "5":
     $rand_value = "e";
    break;
    case "6":
     $rand_value = "f";
    break;
    case "7":
     $rand_value = "g";
    break;
    case "8":
     $rand_value = "h";
    break;
    case "9":
     $rand_value = "i";
    break;
    case "10":
     $rand_value = "j";
    break;
    case "11":
     $rand_value = "k";
    break;
    case "12":
     $rand_value = "l";
    break;
    case "13":
     $rand_value = "m";
    break;
    case "14":
     $rand_value = "n";
    break;
    case "15":
     $rand_value = "o";
    break;
    case "16":
     $rand_value = "p";
    break;
    case "17":
     $rand_value = "q";
    break;
    case "18":
     $rand_value = "r";
    break;
    case "19":
     $rand_value = "s";
    break;
    case "20":
     $rand_value = "t";
    break;
    case "21":
     $rand_value = "u";
    break;
    case "22":
     $rand_value = "v";
    break;
    case "23":
     $rand_value = "w";
    break;
    case "24":
     $rand_value = "x";
    break;
    case "25":
     $rand_value = "y";
    break;
    case "26":
     $rand_value = "z";
    break;
    case "27":
     $rand_value = "0";
    break;
    case "28":
     $rand_value = "1";
    break;
    case "29":
     $rand_value = "2";
    break;
    case "30":
     $rand_value = "3";
    break;
    case "31":
     $rand_value = "4";
    break;
    case "32":
     $rand_value = "5";
    break;
    case "33":
     $rand_value = "6";
    break;
    case "34":
     $rand_value = "7";
    break;
    case "35":
     $rand_value = "8";
    break;
    case "36":
     $rand_value = "9";
    break;
  }
return $rand_value;
}
}




$obj1 = new Ksb_CodeGenerator();
    print $obj1->get_rand_id(7);
?>




Fatal error: Call to undefined function assign_rand_value() in C:\wamp\www\kvch_new\ksb_codeGenerator.php on line 14

我想要 craete 随机代码,但我无法为验证代码创建代码。在上面的代码中,我正在创建一个对象,即 $obj1 和 $obj1 正在收集 get_rand_id() 函数。该程序正在 acore php 项目的代码 php 文件中使用。

请帮我

4

2 回答 2

2

代替

$rand_id .= assign_rand_value($num);

$rand_id .= $this->assign_rand_value($num);

因为如果你像assign_rand_value($num)这样调用函数,它会调用你创建或包含的 php 函数或核心函数。

而doing$this->assign_rand_value($num)会调用类成员函数。

于 2013-10-12T11:40:53.843 回答
1

你应该写:

   $rand_id .= $this->assign_rand_value($num);

否则,您可以执行以下操作:

$options = array_merge(range('a', 'z'), range('0', '9'));
$rand_id.= $options[$num];
于 2013-10-12T11:40:48.700 回答