Web lists-archives.com

Re: Function name must be a string error




Horray; 
Just as a follow up. It dawned on me that I could pass $_code as an argument to the
recursive method as an alternative. Then it can call the argument variable as a function
without having to call require in every recursion.

I have now gotten past the Function name must be a string error.

Maybe this will help someone with a similar issue.

Jeff K
> On Dec 4, 2018, at 3:30 AM, Enno Woortmann <enno.woortmann@xxxxxx> wrote:
> 
> Hi Jeff,
> 
> try
> 
> (self::$_proc)(/*args*/);
> 
> This will work if you are using PHP >= 7.0
> 
> Additional ways are described in: https://stackoverflow.com/questions/7067536/how-to-call-a-closure-that-is-a-class-variable
> 
> regards,
> 
> Enno
> 
> Am 04.12.2018 um 02:44 schrieb Jeffry Killen:
>>> On Dec 3, 2018, at 5:19 PM, Aziz Saleh <azizsaleh@xxxxxxxxx> wrote:
>>> 
>>> var_dump(self::$_proc) before the function call, what do you get?
>> 
>> object(Closure)#2 (2) {
>>   ["this"]=>
>>   object(_FS_RECURSOR)#1 (0) {
>>   }
>>   ["parameter"]=>
>>   array(4) {
>>     ["$_src"]=>
>>     string(10) "<required>"
>>     ["$_type"]=>
>>     string(10) "<required>"
>>     ["$_list"]=>
>>     string(10) "<required>"
>>     ["$_localArgs"]=>
>>     string(10) "<required>"
>>   }
>> }
>> 
>>> On Mon, Dec 3, 2018 at 8:01 PM Jeffry Killen <jekillen@xxxxxxxxxxx> wrote:
>>> Hello again;
>>> 
>>> I have solved this before. But it has been too long ago.
>>> I don't remember what the fix was;
>>> 
>>> file with function definition:
>>> 
>>> $_funct = function(/*args*/){ // code}
>>> 
>>> class def:
>>> 
>>> private static $_proc = '';
>>> 
>>> __construct() requires file with $_funct definition
>>> and assigns it to self::$_proc
>>> 
>>> require(/*file with funct definition*/)
>>> 
>>> self::$_proc = $_funct;
>>> 
>>> later in $_POST processing the function is called:
>>> 
>>> self::$_proc(/*args*/) // ->  Function name must be a string
>>> 
>>> There are actually more steps to this, but it would require
>>> a lot of code reproduced here for it to make sense. This abstraction
>>> is about as simple as I can represent it.
>>> 
>>> In the processing the self::$_proc function is being called under
>>> different circumstances. The error occurs on the first time it is
>>> called. So It appears that it is not a case where one particular
>>> line has a problem and the others don't.
>>> 
>>> This has been working elsewhere in testing in the same project.
>>> 
>>> I google the error and didn't get listings for the same type of issue.
>>> 
>>> Thanks for time and attention;
>>> Jeff K
>>