在PHP构造函数中键入提示?

Vil*_*agg 0 php oop constructor class

有没有什么可以阻止我在__construct()括号内提示这样的类型?

<?php

    class SomeClass extends BaseClass {

        public function __construct(array $someArray) {

            parent::__construct($someArray);
        }
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做吗?

<?php

    class SomeClass extends BaseClass {

        public function __construct($someArray = array()) {

            parent::__construct($someArray);
        }
Run Code Online (Sandbox Code Playgroud)

编辑:

这是有效的:(谢谢@hakra和@Leigh)

<?php

    class SomeClass extends BaseClass {

        public function __construct( array $someArray = NULL ) {

            parent::__construct( (array) $someArray);
        }
Run Code Online (Sandbox Code Playgroud)

对我来说,它看起来很干净,我确切地知道它应该是什么意思.

Lei*_*igh 7

这是类型提示,没有默认值,声明必须给出一个参数,并且它的类型必须是一个数组

public function __construct(array $someArray) {


如果没有传递参数,则为没有typehint提供参数的默认值.

public function __construct($someArray = array()) {


他们是两个不同的东西.

在第二个实例中,您可以调用没有参数的函数,它将起作用,但第一个不会.

如果需要,可以将两者结合使用,以指定默认值并指定所需类型.

public function __construct(array $someArray = array()) {

或者正如@hakre所说,你可以这样做:

public function __construct(array $someArray = NULL) {