PHP中函数参数之前的数组关键字

时间:2011-09-09 16:24:51

标签: php

我看到一个声明如下的函数:

public static function factory($file=null, array $data=null, $auto_encode=null)

如果您想查看真正的课程,请转到github中a fork of fuelphp parser packageview.php课程。

我的问题是,arrayarray $data = null关键字的含义是什么?

3 个答案:

答案 0 :(得分:4)

这是PHP5's type hinting的一个例子。参数$data应该是一个数组。可以将方法参数提示为objectarray类型。如果它是一个对象,您可以将该类的名称指定为提示关键字。

答案 1 :(得分:3)

答案 2 :(得分:1)

如果我没记错的话,你可以在参数之前设置一个类名来将变量类型限制为类的变量类型,但是,我不确定array在这里是否有效使用。

编辑:显然我的PHP有点生疏。根据{{​​3}}:

  

PHP 5引入了类型提示。函数现在能够强制参数为对象(通过在函数原型中指定类的名称)或数组(从PHP 5.1开始)。但是,如果将NULL用作默认参数值,则允许将其作为后续调用的参数。

例如:


// An example class
class MyClass
{
    /**
     * A test function
     *
     * First parameter must be an object of type OtherClass
     */
    public function test(OtherClass $otherclass) {
        echo $otherclass->var;
    }


    /**
     * Another test function
     *
     * First parameter must be an array
     */
    public function test_array(array $input_array) {
        print_r($input_array);
    }
}

// Another example class
class OtherClass {
    public $var = 'Hello World';
}