Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当一个变量包含一个函数时,为什么会自动执行它_Php_Variables - Fatal编程技术网

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();

你太离谱了:)谢谢,三十点,现在感觉像一个珍贵的柠檬你怎么能用返回值呢?当你调用一个函数时,它是简单执行的,这一点毫无疑问。你太离谱了:)谢谢,三十点,现在感觉像一个珍贵的柠檬你怎么能用返回值呢?当你调用一个函数时,它是简单执行的,这一点不含糊。