He means
function foo(callback derp = array('MyClass', 'ohai')) { ... }
David
On 08.06.2011, at 15:31, Anthony Ferrara wrote:
>> No default values, other then NULL allowed.
>> Otherwise we would need to support array("classname", "methodname")
>> too, and then people would want default array values for array
>> typehinting etc etc etc.
>
> Unless I mis-read what you said, we already have default array values
> for array type-hinting:
>
> function foo(array $array = array('bar', 'baz')) {
> var_dump($array);
> }
>
> foo();
>
> foo(array());
>
> Works perfectly for me on 5.3.6...
>
> 2011/6/8 Hannes Magnusson <[email protected]>:
>> 2011/6/8 Johannes Schlüter <[email protected]>:
>>> On Tue, 2011-06-07 at 12:12 -0700, Stas Malyshev wrote:
>>>> Hi!
>>>>
>>>>> https://wiki.php.net/rfc/callable
>>>>
>>>> It is good there's an RFC. However it seems to lack code examples. I
>>>> understand it may be obvious to the proposers how it looks like, but
>>>> it'd be nice to have the actual example there as it is done nearly
>>>> everywhere else.
>>>
>>> The RFC is missing information about what happens in codebases which
>>> already have a "callable" type declared. Will that be prevented or will
>>> they hit a runtime error? ("callable expected, callable type found")
>>
>> You mean an interface/class with that name?
>> The error would be 'expected instanceof callable, string/array/closure recieved.
>>
>> gettype("strpos") will still return a string, not callable.
>>
>> A callable wouldn't be fully featured type.
>>
>>> What about default values? Will
>>> function foo(callback $cb = 'strpos') { }
>>> be valid?
>>
>> No default values, other then NULL allowed.
>> Otherwise we would need to support array("classname", "methodname")
>> too, and then people would want default array values for array
>> typehinting etc etc etc.
>>
>>
>>
>>> The information on reflection is limited. what shall
>>> Reflection::Parameter::getTypehint() return? Will that method allow to
>>> differ between a class type and this "magic"?
>>
>> There is no such method anymore :)
>>
>>
>>>
>>> What about ARGINFO? Will internal functions be able to define this type
>>> via ARGINFO? How will this be reported in php --rf function
?
>>
>> I didn't include arginfo in the patch, but good point. It should
>> probably be included.
>> As Felipe pointed out, ext/reflection hasn't been updated.
>> It should return [ callable $foobar ], just like with any other typehint
>>
>> -Hannes
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
Attachment: [application/pkcs7-signature] smime.p7s