Bug #74018 [Opn->Nab]: cannot assign anonymous function to static variable
Edit report at https://bugs.php.net/bug.php?id=74018&edit=1
ID: 74018
Updated by: requinix@php.net
Reported by: zhuravlov dot ip at ya dot ru
Summary: cannot assign anonymous function to static variable
-Status: Open
+Status: Not a bug
Type: Bug
Package: Compile Failure
Operating System: Linux x86_64
PHP Version: 7.0.15
Block user comment: N
Private report: N
New Comment:
static variables must be initialized with constant values. Closures are expressions.
Previous Comments:
------------------------------------------------------------------------
[2017-01-30 17:36:22] zhuravlov dot ip at ya dot ru
Description:
------------
Distro: openSUSE Leap 42.1 (x86_64)
Packages used: php7-7.0.15-35.2.x86_64
Standard (not changed) php.ini
Command to run: php test-static-lambda.php
Test script:
---------------
<?php
function f1() {
$lambda1 = function() {}; // line 3
}
function f2() {
$lambda2 = static function() {}; // line 7
}
function f3() {
static $lambda3 = function() {}; // line 11
}
function f4() {
static $lambda4 = static function() {}; // line 15
}
Expected result:
----------------
Lines 11 and 15 should not produce a fatal error. BTW, I'm slightly in doubt about line 11
since it looks wrong.
Instead, lines 11 and 15 should be performed silently as lines 4 and 9 do.
Actual result:
--------------
PHP Fatal error: Constant expression contains invalid operations in
/home/user/tmp/test-static-lambda.php on line 11
If you comment out the line 11 then:
PHP Fatal error: Constant expression contains invalid operations in
/home/user/tmp/test-static-lambda.php on line 15
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=74018&edit=1
Thread (2 messages)