javascript - PHP 中的 IIFE(立即调用函数表达式)?

标签 javascript php angularjs

我想知道 PHP 是否与 Javascript 一样等价 IIFE(立即调用的函数表达式)。 PHP Closure 能否以任何方式编写,以便它可以像 Javascript 一样工作(调用、依赖、注入(inject)、指令)?

(function(){
    myModule = angular.module('myAngularApplication', []);
}());

上面的表达式称为立即调用函数表达式 (IIFE)。因为函数定义将在加载 .js 文件时立即调用自身。 IIFE 有效的主要原因是我们可以立即执行所有代码,而无需全局变量和函数。现在,当我们这样做时,我们的 Controller 创建将失败,因为我们使用全局变量通过模块创建 Controller 。为了避免这个问题,让我们使用 getter 函数 angular.module 将 Controller 与模块相关联。当我们这样做的时候,为什么不把 Controller 也放在 IIFE 中。

(function () {

    var booksController = function ($scope) {
         $scope.message = "Hello from booksController";
    }

    angular.module('myAngularApplication').controller('booksController', booksController); 
}());

来源:http://www.codeproject.com/Articles/995498/Angular-Tutorial-Part-Understanding-Modules-and 谢谢。

最佳答案

在 PHP 7 中,是的,您可以:

(function() { echo "yes, this works in PHP 7.\n"; })();

这在 PHP 5.x 中不起作用。相反,最接近的是:

call_user_func(function() { echo "this works too\n"; });

关于javascript - PHP 中的 IIFE(立即调用函数表达式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044452/

相关文章:

php - 将值传递到灯箱

PHP 和旋转代理

javascript - Uncaught ReferenceError : require is not defined in browserify

javascript - 如何在 AngularJS Controller 中使用环境变量?

java - 如何从 PHP 使用 Java 程序?

angularjs - 使用 ui-router 和 Angular-translate 本地化 URL

javascript - React-router:如何手动调用Link?

javascript - 在 contenteditable div 中使用箭头键移动插入符号时停止不需要的滚动

javascript - 学生已存在注册系统验证 (Codeigniter)

如果同时发送多个 sqlsrv 查询,PHP 如何处理错误