为什么这个程序使用php调用未定义的函数

时间:2013-10-12 11:38:46

标签: php oop

我是php的新手,为什么这个程序会给我们带来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 randon代码,但我无法为变换代码创建代码。在上面的代码中, 我正在创建一个对象,即$ obj1和$ obj1是colling get_rand_id()函数。这个程序正在acore php项目的代码php文件中使用。

请帮帮我

2 个答案:

答案 0 :(得分:2)

<强>替换

$rand_id .= assign_rand_value($num);

<强>与

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

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

执行$this->assign_rand_value($num)将调用类成员函数。

答案 1 :(得分:1)

你应该写:

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

否则你可以这样做:

$options = array_merge(range('a', 'z'), range('0', '9'));
$rand_id.= $options[$num];