Php 当一个变量包含一个函数时,为什么会自动执行它
考虑以下几点:Php 当一个变量包含一个函数时,为什么会自动执行它,php,variables,Php,Variables,考虑以下几点: $result = mysql_query($sql); 为什么这会被执行?如果我写下这样的话,我可以理解: mysql_query($sql); 它被处决了?但变量的意义不在于“保存”东西,而不是执行它们吗?我在这里有点离题吗?按设计工作:$result被分配给您调用的mysql\u query()操作的结果 您需要的可能是传递函数本身,就像JavaScript允许的那样: function x() { alert("Hi"); } window.onload = x;
$result = mysql_query($sql);
为什么这会被执行?如果我写下这样的话,我可以理解:
mysql_query($sql);
它被处决了?但变量的意义不在于“保存”东西,而不是执行它们吗?我在这里有点离题吗?按设计工作:
$result
被分配给您调用的mysql\u query()
操作的结果
您需要的可能是传递函数本身,就像JavaScript允许的那样:
function x() { alert("Hi"); }
window.onload = x;
window.onload(); // will alert "Hi"
这可以使用如下内容(PHP5.3之前的版本)实现:
或在PHP 5.3中:
$result = function($sql) { mysql_query(\$sql); }
在这两种情况下,您都可以调用创建的函数:
$result($sql);
在PHP中传递函数的做法比在Javascript中要少见得多。按设计工作:
$result
被分配给您调用的mysql\u query()
操作的结果
您需要的可能是传递函数本身,就像JavaScript允许的那样:
function x() { alert("Hi"); }
window.onload = x;
window.onload(); // will alert "Hi"
这可以使用如下内容(PHP5.3之前的版本)实现:
或在PHP 5.3中:
$result = function($sql) { mysql_query(\$sql); }
在这两种情况下,您都可以调用创建的函数:
$result($sql);
在PHP中传递函数的做法比在Javascript中要少得多。这基本上是在函数返回值时完成的 后面的语句将成功执行,但无法利用检索到的数据
列出的第一条语句根据查询的执行返回结果集,并将其分配给$result变量。当函数返回一个值时,基本上就是这样做的 后面的语句将成功执行,但无法利用检索到的数据 列出的第一条语句根据查询的执行返回结果集,并将其分配给$result变量。如果执行
mysql_query($sql);
函数的输出丢失,在大多数情况下不好;-)
因此,您希望将函数的输出保存在变量中。这个的运算符是“=”
你应该考虑,通过输入
$x = 1 + 1;
你想要$x=2;而不是字符串形式的“1+1”,它的效果基本相同。如果执行
mysql_query($sql);
函数的输出丢失,在大多数情况下不好;-)
因此,您希望将函数的输出保存在变量中。这个的运算符是“=”
你应该考虑,通过输入
$x = 1 + 1;
你想要$x=2;而不是字符串形式的“1+1”,这基本上是相同的效果。如果您编写
mysql\u查询($sql)代码>,它被执行并返回一个值。在这种情况下,该值未被捕获,因此将丢失。如果您编写$result=mysql\u查询($sql)代码>执行它并捕获返回值。这就是每种语言(甚至JS)中函数的工作方式
如果你想“保存”一个函数,你可以使用
$fct = 'mysql_query';
$result = $fct($sql);
或者在PHP>5.3中,您可以使用闭包,这也允许您设置值
$fct = function () use ($sql) {
return mysql_query($sql);
}
$result = $fct();
如果您编写mysql\u查询($sql)代码>,它被执行并返回一个值。在这种情况下,该值未被捕获,因此将丢失。如果您编写$result=mysql\u查询($sql)代码>执行它并捕获返回值。这就是每种语言(甚至JS)中函数的工作方式
如果你想“保存”一个函数,你可以使用
$fct = 'mysql_query';
$result = $fct($sql);
或者在PHP>5.3中,您可以使用闭包,这也允许您设置值
$fct = function () use ($sql) {
return mysql_query($sql);
}
$result = $fct();
你太离谱了:)谢谢,三十点,现在感觉像一个珍贵的柠檬你怎么能用返回值呢?当你调用一个函数时,它是简单执行的,这一点毫无疑问。你太离谱了:)谢谢,三十点,现在感觉像一个珍贵的柠檬你怎么能用返回值呢?当你调用一个函数时,它是简单执行的,这一点不含糊。