Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP静态关键字和创建函数问题_Php - Fatal编程技术网

PHP静态关键字和创建函数问题

PHP静态关键字和创建函数问题,php,Php,我最近在PHP方面遇到了一些相当有趣的问题。我试图在PHP中创建一个闭包,并将其分配给一个静态变量,这样它只需要定义一次 static $hasParent = create_function( '$category, $parent_id', <<<'FUNC' ...code... FUNC ); static$hasParent=create_函数(“$category,$parent_id”, 注意: function foo() { st

我最近在PHP方面遇到了一些相当有趣的问题。我试图在PHP中创建一个闭包,并将其分配给一个静态变量,这样它只需要定义一次

    static $hasParent = create_function( '$category, $parent_id', <<<'FUNC'
        ...code...
FUNC
);
static$hasParent=create_函数(“$category,$parent_id”,
注意

function foo() {
  static $bar = function () {
    echo 'bar';
  };

  echo 'foo', $bar();
}

foo();
function foo() {
  static $bar = null;
  if ($bar === null) {
    $bar = function () {
      echo 'bar';
    };
  }

  echo 'foo', $bar();
}

foo();
静态变量可以如上面的示例所示声明 为这些变量赋值,这些变量是 表达式将导致分析错误

参考:


所以,不正常

function foo() {
  static $bar = function () {
    echo 'bar';
  };

  echo 'foo', $bar();
}

foo();
function foo() {
  static $bar = null;
  if ($bar === null) {
    $bar = function () {
      echo 'bar';
    };
  }

  echo 'foo', $bar();
}

foo();
正常

function foo() {
  static $bar = function () {
    echo 'bar';
  };

  echo 'foo', $bar();
}

foo();
function foo() {
  static $bar = null;
  if ($bar === null) {
    $bar = function () {
      echo 'bar';
    };
  }

  echo 'foo', $bar();
}

foo();

谢谢Yoshi,让我感动的一点是,我试图分配一个基本上是表达式的东西。再次感谢!