rfc:callable-types

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
Last revisionBoth sides next revision
rfc:callable-types [2016/05/23 14:12] nikita2206rfc:callable-types [2016/06/06 21:25] nikita2206
Line 3: Line 3:
   * Date: 2015-08-27   * Date: 2015-08-27
   * Authors: Nikita Nefedov <inefedor@gmail.com>, Márcio Almada <marcio3w@gmail.com>   * Authors: Nikita Nefedov <inefedor@gmail.com>, Márcio Almada <marcio3w@gmail.com>
-  * Status: Voting+  * Status: Declined
   * First Published at: http://wiki.php.net/rfc/callable-types   * First Published at: http://wiki.php.net/rfc/callable-types
  
Line 195: Line 195:
 </code> </code>
  
-Optional parameters count just like any other arguments if they are typed:+Optional parameters count just like any other parameters if they are typed:
 <code php> <code php>
 function foo(callable() $cb) { } function foo(callable() $cb) { }
Line 240: Line 240:
  
 There's no way to declare that you expect a callable that returns reference due to syntax limitations. There's no way to declare that you expect a callable that returns reference due to syntax limitations.
 +
 +==== Parameters with default values ====
 +
 +It's not possible to declare default value of a parameter in a callable prototype. Because currently PHP doesn't consider parameter's default values in signature validation (their invariance is not enforced in overridden methods in classes).
  
 ==== Syntax Choices ==== ==== Syntax Choices ====
Line 462: Line 466:
 Besides that, even with named callable types support, inlined callable types could be a way to keep the type unexposed from public API Besides that, even with named callable types support, inlined callable types could be a way to keep the type unexposed from public API
 while PHP lacks first class packages. while PHP lacks first class packages.
- 
-==== Reflection API ==== 
- 
-An extension to the reflection API will be proposed in case the RFC is approved. 
  
 ===== Votes ===== ===== Votes =====
  
-This RFC requires a 2/3 majority to pass.+This RFC requires a 2/3 majority to pass. Vote started on May 23, 2016, ends June 6, 2016.
  
-<doodle title="Accept callable prototypes?" auth="nikita2206" voteType="single" closed="false">+<doodle title="Accept callable prototypes?" auth="nikita2206" voteType="single" closed="true">
    * Yes    * Yes
    * No    * No
rfc/callable-types.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1