Req #55078 [Opn->Wfx]: Can't use anonymous function inside array declaration inside a class
Edit report at https://bugs.php.net/bug.php?id=55078&edit=1
ID: 55078
Updated by: laruence@php.net
Reported by: charlie at charliesomerville dot com
Summary: Can't use anonymous function inside array
declaration inside a class
-Status: Open
+Status: Wont fix
Type: Feature/Change Request
Package: Scripting Engine problem
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
"(propeties) This declaration may include an initialization, but this
initialization must be a constant value--that is, it must be able to be
evaluated at compile time and must not depend on run-time information in order
to be evaluated."
http://www.php.net/manual/pt_BR/language.oop5.properties.php
lambda is a dynamic expression like :
function lambda() use ($variable) {
}
so, we should not allow lambda in class properties initialization.
Previous Comments:
------------------------------------------------------------------------
[2012-11-23 04:38:30] nickmokisasian at gmail dot com
When will this feature be supported?
------------------------------------------------------------------------
[2011-07-01 18:46:57] felipe@php.net
This is just more one limitation, not a bug. Changing to feature request.
Thanks.
------------------------------------------------------------------------
[2011-06-29 23:54:37] charlie at charliesomerville dot com
Description:
------------
You can't declare an anonymous function in an array declaration inside a class
declaration.
Test script:
---------------
<?php
class Foo
{
static $array = array("hi" => function() {
phpinfo();
});
}
Foo::$array["hi"]();
Expected result:
----------------
phpinfo being displayed
Actual result:
--------------
Parse error: syntax error, unexpected T_FUNCTION in /path/to/script.php on line 5
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55078&edit=1
Thread (4 messages)