请考虑以下事项:
$result = mysql_query($sql);
为什么这会被执行?我能理解我是否写了这个:
mysql_query($sql);
它被执行了吗?但是不是“保持”东西,而不是执行它们的变量点?我是不是在这里?
答案 0 :(得分:3)
按设计工作:$result
被分配了mysql_query()
操作的结果,您可以调用它。
你想要的可能是传递函数本身,就像JavaScript允许:
function x() { alert("Hi"); }
window.onload = x;
window.onload(); // will alert "Hi"
这可以使用类似的东西(PHP 5.3之前):
$result = create_function("\$sql", "mysql_query(\$sql);");
或在PHP 5.3中:
$result = function($sql) { mysql_query(\$sql); }
你可以在两种情况下调用创建的函数:
$result($sql);
传递函数的做法在PHP中比在Javascript中更常见。
答案 1 :(得分:3)
如果你执行
mysql_query($sql);
函数的输出丢失,大多数情况下都不好; - )
因此,您希望将函数的输出保存在变量中。此操作符为“=”。
你应该考虑一下,输入
$x = 1 + 1;
你想要$ x = 2;而不是“1 + 1”作为一个字符串,基本上是相同的效果。
答案 2 :(得分:0)
这基本上是在函数返回值时完成的。
后面的语句将成功执行,但您无法使用检索到的数据。
列出的第一个语句根据查询的执行返回结果集,并将其分配给$ result变量。
答案 3 :(得分:0)
如果你写mysql_query($sql);
,它会被执行并返回一个值。在这种情况下,值不会被捕获,因此它会丢失。如果你写$result = mysql_query($sql);
它会被执行并且返回值被捕获。这就是每种语言(甚至是JS)中的函数的运行方式。
如果你想“保存”一个功能,你可以使用像
这样的东西$fct = 'mysql_query';
$result = $fct($sql);
或在PHP> 5.3你可以使用闭包,它允许你设置值
$fct = function () use ($sql) {
return mysql_query($sql);
}
$result = $fct();