是我火星了?PHP 从哪个版本开始支持 IIFE(立即执行函数表达式) 的?

事先声明:以前试过IIFE写法,然而代码跑不动,所以我真的是不知道PHP支持 IIFE 写法的,看过官方文档http://php.net/manual/zh/functions.anonymous.php 并没有看到这种魔法写法。

JS 的IIFE写法大家都知道,我就不说了。
自动过渡到5.4以后,我也大量使用了PHP的闭包了,当时试过 IIFE写法,语法错误。

今天看到同事的代码,居然有IIFE写法,我惊诧的问了句:这个能跑吗?被白了一眼:不能跑我的页面怎么跑起来的。。。

<?php
$b=42;
$c=(function($b){
    echo $b;
})($b);

//或者

(function($b){
    echo $b;
})($b);
php -f a.php

我的天,还真能跑。。

问下大家是7开始支持的还是一开始就支持?
假如说从支持闭包就开始支持(PHP/5.3)那好像只能用下面的代码来解释了?

<?php
$b=42;
$c=function($b){
    echo $b;
};
($c)($b); // $c($b);

长见识了。。。

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3
leo
7年前 评论

@leo 感谢,果然是7增加的

7年前 评论

php7还有这功能

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!