rfc:consistent_callables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:consistent_callables [2019/04/28 02:58] danackrfc:consistent_callables [2021/10/20 13:18] (current) danack
Line 3: Line 3:
   * Date: 2019-04-28    * Date: 2019-04-28 
   * Author: Dan Ackroyd   * Author: Dan Ackroyd
-  * Status: Under Discussion +  * Status: Withdrawn
   * First Published at: https://wiki.php.net/rfc/consistent_callables   * First Published at: https://wiki.php.net/rfc/consistent_callables
  
Line 226: Line 226:
   - A string that is the name of a function.   - A string that is the name of a function.
   - An array consisting of two elements; a string at index 0 which is a valid fully qualified class name, and a string at index 1 which must meet the conditions:   - An array consisting of two elements; a string at index 0 which is a valid fully qualified class name, and a string at index 1 which must meet the conditions:
-  * either be the name of a public static function of the class or the class must have a magic __callStatic method.   +    * either be the name of a public static function of the class or the class must have a magic %%__callStatic%% method. 
-   +    * the name must not be that of an instance method. 
-  * the name must not be that of an instance method.   +  - An array consisting of two elements; an object at index 0, and a string at index 1 where either the string is the name of a public method of the object, or the object has a magic %%__call%% method. 
-  - An array consisting of two elements; an object at index 0, and a string at index 1 where either the string is the name of a public method of the object, or the object has a magic __call method.  +  - A string of the form `%CLASS_NAME%::%STATIC_METHOD_NAME%` where %CLASS_NAME% is fully qualified class name, and %STATIC_METHOD_NAME% which must meet the conditions: 
 +    * either be the name of a public static function of the class or the class must have a magic %%__callStatic%% method. 
 +    * the name must not be that of an instance method.
   - An instance of a class (an object) where the class has a public __invoke() method.   - An instance of a class (an object) where the class has a public __invoke() method.
   - Closures, which includes anonymous functions.   - Closures, which includes anonymous functions.
 +
  
 Note - Does not affect calling private/protected methods in correct scope Note - Does not affect calling private/protected methods in correct scope
Line 256: Line 259:
 </code> </code>
  
-In this example, although `$fn` is not a callable that can be passed around to arbitrary scopes, it is valid to call it in the scope that it's in. call_user_func and $fn() will continue to check whether the variable passed in is callable in the current scope. i.e. with is_callable($fn, $syntaxOnly = false, $currentScope = true)+In this example, although `$fn` is not a callable that can be passed around to arbitrary scopes, it is valid to call it inside the class scope that it's in. 
  
 ==== The strings 'self', 'parent', and 'static' are no longer usable as part of a string callable ====  ==== The strings 'self', 'parent', and 'static' are no longer usable as part of a string callable ==== 
rfc/consistent_callables.1556420303.txt.gz · Last modified: 2019/04/28 02:58 by danack