当我用随机值替换静态值时,Rand()函数会导致错误

时间:2011-06-04 00:36:33

标签: php

我做错了什么

我有这个脚本,并添加了$randnumber = rand(100, 500);函数,这应该为我生成一个100到500之间的随机数。

   $randnumber = rand(100, 500);
    function word_limiter( $text, $limit = $randnumber, $chars = '0123456789' )

问题是它给了我一个错误:

  

解析错误:语法错误,意外   T_VARIABLE

如果我将该功能用作:

function word_limiter( $text, $limit = '200', $chars = '0123456789' )

它100%有效,我尝试过这样:

function word_limiter( $text, $limit = ''.$randnumber.'', $chars = '0123456789' )

但仍然出错?

4 个答案:

答案 0 :(得分:3)

你做错了是试图将变量用作默认参数值。你不能这样做。

答案 1 :(得分:3)

这是语法错误。您不能将表达式的值指定为默认值。默认值只能是常量。而不是这样做,你可能会做类似的事情:

function word_limiter ($text, $limit = null, $chars = '0123456789') {
    if ($limit === null) {
        $limit = rand(100, 500);
    }
    // ...
}

答案 2 :(得分:2)

你可以这样做:

function word_limiter( $text, $limit = null, $chars = '0123456789' ){
    if (is_null($limit)){
        $limit = rand(100, 500);
    }
}

答案 3 :(得分:2)

您不能将变量用作参数的默认值 - 它必须是常量值。

你可以试试这个......

function word_limiter($text, $limit = NULL) {
   if ($limit === NULL) {
      // Make its default value.
   }
}