php匿名函数调用的问题?

匿名函数

<?php
$variable = function($parameter) {
    echo $parameter;
}; //这里必须跟分号

$variable('你好');

普通函数

function demo ($name){
    echo $name;
}
demo ('明天');

为什么通过变量名调用匿名函数时, 右花括号后面必须接分号呢? 否则会报错?
Parse error: syntax error, unexpected '$variable' (T_VARIABLE### 问题描述

阅读 2.1k
2 个回答

闭包函数也可以作为变量的值来使用。PHP 会自动把此种表达式转换成内置类 Closure 的对象实例。把一个 closure 对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号

前者是赋值,把一个匿名函数回调赋值给变量。而第二种是定义函数。

即便是在js里,第一种写法,也是属于赋值。因为js不强制要求写分号,所以不报错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题