我试图理解这段代码,但我不能:(
$time = date('Y-m-d', strtotime('-30 days'));
$what = create_function('$a', 'return $a.'.'"'." AND date > '$time'".'"'.';');
为什么 $time
变量在这个创建的函数中成功传递,但是当我尝试时:
$limit = 10;
$what = create_function('$a', 'return '.'"'." LIMIT '$limit'".'"'.';');
$limit
不是吗?
ps:如果我尝试 $what = create_function('$a', 'return '.'"'."LIMIT 10".'"'.';');
它会起作用。 ..
最佳答案
代码可以大大简化:
$what = create_function('$a', "return \"LIMIT $limit\";");
或
$what = create_function('$a', 'return "LIMIT ' . $limit .'";');
代码应该可以工作。请注意,在 SQL 语法中,LIMIT
之后的数字不得包含在引号中。
但是当你创建一个函数时,你也可以将 $limit
作为参数传递给函数:
$what = create_function('$limit', 'return "LIMIT $limit";');
$str = $what(10);
或者根本不使用create_function
,直接进行字符串连接:
$str = 'LIMIT ' . $limit;
关于PHP - 创建函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4992606/