在PHP中,是否可以在函数的签名中键入提示两种类型?

时间:2013-12-03 16:49:22

标签: php

我想知道是否有办法输入提示两种类型。 在线搜索后我找不到任何东西。

实施例

class Product {

    public function __contruct(PDO||dbCon $dbCon) {
        // Do What Ever
    }

}

所以我想知道是否有像 ||

这样的东西

谢谢!

2 个答案:

答案 0 :(得分:2)

不,目前在PHP中无法实现。

答案 1 :(得分:1)

不是直接的,但是如果这些类是你的控件,你可以实现一个接口来覆盖它们。

interface databaseConnection {...}

class PDO implements databaseConnection {...}

class dbCon implements databaseConnection {...}

class Product {
    public function __construct( databaseConnection $dbCon) {
        // Do What Ever
    }
}

如果这些类不是您的,您可以实现适配器模式以使它们实现接口。

interface databaseConnectionAdaptor {...}

class PdoDatabaseConnectionAdaptor implements databaseConnectionAdaptor {
    public function __construct( PDO $pdo ) {...}
    ...
}

class DbConnDatabaseConnectionAdaptor implements databaseConnectionAdaptor {
    public function __construct( dbConn $dbCon ) {...}
    ...
}

class Product {
    public function __construct( databaseConnectionAdaptor $dbCon) {
        // Do What Ever
    }
}

您可能会发现这会显着简化产品类。

请参阅此处的适配器模式:http://en.wikipedia.org/wiki/Adapter_pattern