PHP - 创建函数问题

标签 php mysql function variables quotations

我试图理解这段代码,但我不能:(

$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/

相关文章:

php - 在sql中使用concat语句检索记录

function - 你如何从 SASS 中的任何数字中删除单位?

C++ 嵌套构造函数调用与函数声明

php - 编辑按钮是表的未定义 ID

php - NGINX/PHP 下载而不是执行

php - 根据列的字符串长度从 MySQL 中进行选择 - CodeIgniter

bash - 如何制作自定义 BASH 函数以自动完成 cd 到特定目录

c# - Curl - 获取包含图像和 css 的页面

php - PHP 中的 JavaScript 无法正常工作(document.getElementById)

MySQL 通配符问题