像JavaScript中一样,PHP中是否存在函数变量?

| 在JavaScript中,您可以:
var blabla = function(arg){
  ...
};
PHP中是否有类似的东西? 我知道ѭ1,但是将代码填充到字符串参数中确实很复杂。
已邀请:
从PHP 5.3开始,您可以创建如下匿名函数:
$var = 1;
$func = function( $arg ) use ($var) {
     return $arg + $var;
};
必须使用
use
子句才能访问在匿名函数外部定义的变量。 如果要在匿名函数中更改外部变量,则必须在
use
部分中将其声明为引用(在
$
前面添加
&
):
$var = 1;
$func = function() use ( &$var ) {
   $var = 42;
}
$func();
// $var == 42 now
否则,匿名函数中所做的更改将不会传播到外部。
它们称为匿名函数。在PHP> = 5.3中,您可以执行以下操作:
$func = function($a, $b) {
    return $a + $b;
};

$result = $func(3, 4); // returns 7
您甚至可以关闭:
$c = 5;
$func = function($a, $b) use ($c) {
    return ($a + $b) * $c;
};

$result = $func(3, 4); // returns 35
但请注意:以下JavaScript代码段只能使用引用在PHP中复制:
var c = 5;
var f = function(a, b) {
    return (a + b) * c;
};
var r = f(3, 4); // returns 35
c = 6;
r = f(3, 4); // returns 42
在PHP中,它必须类似于:
$c = 5;
$func = function($a, $b) use (&$c) {
    return ($a + $b) * $c;
};

$result = $func(3, 4); // returns 35
$c = 6;   
$result = $func(3, 4); // returns 42
在5.3之前,您必须使用ѭ1来创建匿名函数。
是的,它在php 5.3.X中可用 http://php.net/manual/zh/functions.anonymous.php
<?php
$greet = function($name)
{
    printf(\"Hello %s\\r\\n\", $name);
};

$greet(\'World\');
$greet(\'PHP\');
?>
自PHP 5.3.0起提供匿名功能。链接
语法与JavaScript非常相似。对于您的特定示例,它将类似于以下内容:
$blabla = function($arg){
  ...
};
唯一的区别是用\“ $ \”替换\“ var \”,并在\“ arg \”之前添加\“ $ \”。

要回复问题请先登录注册