奇怪的PHP语法 - $ variable之前的字符串?这是什么?

时间:2014-09-09 05:29:13

标签: php

我在类这样的类中遇到了一段代码:

...
public function __construct(
    PDO $pdo,
    CommonSqlQueries $csq
) {
...

在变量PDO之前,$pdo等字符串的含义是什么?我甚至不知道这种语法是什么,更不用说如何研究它了。

2 个答案:

答案 0 :(得分:6)

它被称为type hinting(它在PHP 5中引入):

  

现在,函数可以强制参数为对象(通过   在函数原型中指定类的名称),   接口,数组(自PHP 5.1起)或可调用(自PHP 5.4起)。   但是,如果NULL用作默认参数值,则允许将其作为后续调用的参数。

未能满足类型提示会导致可捕获的致命错误。在您的情况下,如果构造函数将使用除PDOCommonSqlQueries对象之外的其他对象分别作为第一个和第二个参数调用,则会发生这种情况。

答案 1 :(得分:2)

这称为类型提示。

  

函数是[因为PHP5]能够强制参数成为对象(通过在函数原型中指定类的名称),接口,数组(从PHP 5.1开始)或可调用(从PHP 5.4开始)。“

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