【问题标题】:Fatal error: Call to undefined function with strings致命错误:使用字符串调用未定义函数
【发布时间】:2017-09-19 03:57:55
【问题描述】:
<?
  function generateRenStr($length) {
    $character = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $rendom_str = "";
    $loopNum = $length;
    while ($loopNum--) {
      $rendom_str .= $character(mt_rand(0, strlen($character)));
    }
    return $rendom_str;
  }
?>

当我运行它时,网络浏览器说

'致命错误:调用未定义函数 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ() 在 C:\Bitnami\wampstack\apache2\htdocs\loginmodule\lib\codegen.php 上 第 7 行
并且 '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 是 不是函数。

我该如何解决?

【问题讨论】:

  • 把这个$rendom_str .= $character(mt_rand(0, strlen($character)));改成这个$rendom_str .= $character[mt_rand(0, strlen($character)-1)];
  • 试试这个eval.in/863937

标签: php


【解决方案1】:

问题就在这里:

while ($loopNum--) {
  $rendom_str .= $character(mt_rand(0, strlen($character)));
}

$character 是一个存储 string 的变量,您正尝试将其作为函数访问。使用了错误的括号(),你需要[]

试试这个:

while ($loopNum--) {
  $rendom_str .= $character[mt_rand(0, strlen($character)-1)];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2012-07-18
    • 2017-01-25
    • 2012-06-28
    • 2014-03-27
    • 2019-09-24
    相关资源
    最近更新 更多