为什么 foo() 函数在没有被调用的情况下被执行?

克里斯蒂

我对 PHP 有点陌生,所以请原谅我的问题的简单性,以防万一,我有一个foo()总是返回 true的函数,现在我的问题是,虽然我只检查函数true存在foo()而不是foo()直接调用函数,那它怎么可能执行呢?是只有 PHP 是这样还是在 JavaScript 中是一样的说法?

 $x = 10;
function foo() {
    global $x;
    if($x = 10) {
        return true;
    }
    return false;
}

if(foo()) {
    echo 'Done foo() function!';
} else {
    echo 'Not done foo() function...';
}
纳兹穆尔·阿桑

您确实在if(foo())这一行中调用了 foo 基本上你在这一行中所做的被调用foo并用if. 如果你想检查foo函数是否被执行,你可以保留一个标志作为全局变量,并将其设置true在函数中这样的地方

$foo_executed = false;
function foo (){
    global $foo_executed;
    // your code here
    $foo_executed = true;
}

//execute foo
foo();
if ($foo_executed){
   echo "foo executed";
}

这种行为在其他编程语言中也很常见。您可以按照本教程了解有关函数的更多信息。祝你好运!

https://www.youtube.com/watch?v=HvxQww-7NGA

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Foo({})调用Foo(0)而不是Foo()?

为什么以这种方式使用函数参数'foo':*(&foo)?

为什么后卫不让foo = foo有效?

为什么obj.foo = function(){};没有为函数分配名称foo?

为什么线程中调用函数的部分代码没有被执行

为什么我的递归调用中的返回函数没有被执行?

没有可访问的foo类型的封闭实例。为什么?

为什么我的 lambda 函数没有被执行?

为什么我的 C++ 函数没有被执行?

为什么在没有类型应用程序的情况下某些函数调用无法工作?

为什么在这种情况下没有调用最合适的构造函数?

为什么函数在没有参数的情况下运行?

为什么 `printf("%s", "foo")` 没有被优化为 `fputs("foo", stdout)`?

从函数的输出创建 Bash 关联数组:为什么“declare -A foo=$(bar)”有效,但“declare -A foo; foo=$(bar)”无效?

为什么 foo 函数内部和外部的参数值不同

为什么resolve(“。/ .. / ....”)和resolve(“ foo”)之间有区别

为什么object [bar]与object [foo]具有相同的输出?

为什么是“ Foo f(Bar());” 可以是采用Bar类型并返回Foo类型的函数的声明?

为什么foo = bar与foo = bar不同?

为什么Lib :: Foo不隐藏:: Foo?

为什么jQuery .on('click',foo)为什么在页面加载而不是click上运行函数?

Clojure中的:foo,:: foo,:: bar / foo和:bar / foo有什么区别?

为什么在没有引用运算符的情况下编译器无法决定要调用哪个函数?

为什么超类为空的构造函数是必需的,而在可怕的菱形情况下却没有调用?

为什么在没有“命令”的情况下从cd(shell函数)调用cd(内置)会导致无限循环?

为什么代码“ foo :: foo :: foo :: foob”正在编译?

为什么foo(1,2,3)没有作为整数[]传递给varargs方法foo(Object ...)

方法调用语法`foo.method()`和UFCS`Foo :: method(&foo)`有什么区别?

该命令执行什么操作:var a,foo =“ foo”; 吝啬的?