2012-11-29 47 views
3

*请将标题改为引用这个问题的内容,因为我不知道这是什么。请解释这个PHP函数定义

当我读了一些教程中,我看到这样的脚本

function testArray(array $categories) { 
var_dump($categories); 
} 

testArray(array('string')); 

在函数定义的array使参数严格的必须是数组,我喜欢它。
然后我测试这个脚本

function testString(string $string) { 
    var_dump($string); 
} 

testString('test'); 

为什么我得到错误这样Catchable fatal error: Argument 1 passed to testString() must be an instance of string, string given ....
我很确定参数是字符串。

+3

'boolean' 'integer' 'float' 'string' 标量类型的数据types.PHP不支持这种类型的提示。 – som

回答

6

你在说什么类型暗示。 PHP类型提示只能用于对象和数组。 字符串是不支持标量类型类型提示

更多类型暗示

http://php.net/manual/en/language.oop5.typehinting.php

+0

但希望https://wiki.php.net/rfc/typechecking(正在讨论中)和https://wiki.php.net/rfc/scalar_type_hinting_with_cast(正在使用草稿)或者可能不喜欢https:// wiki。 php.net/rfc/parameter_type_casting_hints(撤回)。 – eisberg