PHP 指定方法的返回类型提示

标签 php

为方法指定返回类型提示的正确语法是什么?

比如我有这样一个方法:

private static function ConstructPDOObject($dbname) 
{
      $hostname =self::HOSTNAME;
        $username = self::USERNAME;
        $password = self::PASSWORD;
        $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
        return $dbh;
}

而且我希望,每当我调用上述方法时,IDE 都会向我显示 PDO 的方法。

如何添加类型提示?

最佳答案

为了将来引用,这是为 PHP 7 实现的,语法如下(引自源代码):

function foo(): array {
    return [];
}

现在回答您的问题,从 PHP 7(2015 年底左右发布)开始,您将能够执行以下操作(作为示例):

<?php

function ConstructPDOObject($hostname, $dbname, $username, $password): PDO 
{
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
    return $dbh;
}

该规范还允许在接口(interface)内和针对接口(interface)进行类型提示;对于我们这些有兴趣遵守 SOLID 原则的人。

来源和更多信息:https://wiki.php.net/rfc/return_types

关于PHP 指定方法的返回类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1387485/

相关文章:

php - 在 PHP 中将代码拆分为 header /源文件

php - OpenCart 3. 修复 fatal error : Uncaught Error: Class 'Controllerextensionpaymentgcash' not found in storage\modification\system\engine\action. php:71

php - 仅从与类别相关的表中获取事件产品

For循环中的PHP内存使用量不断增长

PHP - 如何突出显示所有单词 (utf-8) 匹配

php - 如何发现给定 URL 的 RSS 提要

php - 在没有括号的 RegEx 中分组竖线分隔的选项?

php - 在 Laravel 5 的自定义错误页面上从中止输出错误消息

php - node.js 能做什么而 php 不能,反之亦然?

php - mysql 数组到字符串的转换