Web lists-archives.com

Re: [PHP] Syntax generating error?




On Sat, Apr 1, 2017 at 5:45 PM, Jeffry Killen <jekillen@xxxxxxxxxxx> wrote:

> Hi;
> The following error is generated by the line marked "// << error indicated"
>
> Fatal error: Function name must be a string in dev_lab_current/lab_20/php/arrayRecursorREV-2.php
> on line 556
>
> self::$_localParams = array
> (
>  'receiver'=>array('value'=>'', 'count'=>0),
>  'type'=>'',
>  'current'=>'',
>  'value'=>'',
>  'count'=>'',
>  'len'=>'',
>  'parent'=>'',
>  'level'=>0,
>  'record'=>array(),
>  'addPath'=>function(){self::showPath();},
>  'stat'=>array()
> );
>
> print self::$_localParams['addPath']().'<br>';// << error indicated (line
> 556)
>
> This is in an early development stage and the print statement is to test
> the concept and
> the function that is supposed to be called. If the function wasn't
> properly defined or referenced,
> it would generate a not defined error.
>
> As it is the self::showPath() call had to be nested in an anonymous
> function. I presume that is what
> the problem is
>
> But the array property is a string, so why would that not serve the
> purpose?
>
> Thanks for time and attention
> JK
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
It would be the case if you are using the current stable release of PHP or
any version >= v 7.0. In older versions you will need to it in a 2-step
process:

$function = self::$_localParams['addPath'];
print $function().'<br>';