【问题标题】:interface reference to its implemented object in php [closed]在php中对其实现对象的接口引用[关闭]
【发布时间】:2014-06-21 17:47:44
【问题描述】:

我正在尝试将接口引用指向其在 PHP 中实现的对象。 这是我的尝试

课程如下:

class Account implements FDInterface
{
    public $bal;
    public function Account() 
    {
        $bal = 0;
        echo 'Account created with balance '.$bal;
    }

    public function getFDInterest()
    {
        echo '</br> Interest Rate is 9.85';
    }
}

界面:

interface FDInterface 
{
    public function getFDInterest();
}

真正的问题在Index.php

FDInterface fdAcc = new Account();   // this is line 1
$fdAcc->getFDInterest();

我得到的输出是

语法错误,第 1 行出现意外的 T_STRING Index.php

【问题讨论】:

  • 恐怕你把 PHP 误认为是其他语言了。第 1 行在语法上完全是无效的,而且在逻辑上也没有意义。
  • @Jon 我是一名 java/Objective-C 开发人员,在这里尝试相同的语法。我希望这在 Java 中的语法是正确的。无论如何,我得到了下面的答案。
  • 哦,我明白了。您不必费心查找 PHP 语法,因为您认为其他人会告诉您。请原谅我认为在尝试编写代码之前实际上会看一下手册。从编写一个你也从Java“移植”的构造函数的不推荐形式来看,你会问很多这样的问题。祝你好运。

标签: php interface


【解决方案1】:

您不能使用FDInterface fdAcc = new Account();。在这种情况下接口中的数据类型只能用作函数中的参数:

function callSometing(FDInterface $fdAcc) {
     $fdAcc->something();
}

在您的情况下,正确且功能正常的代码是:

$fdAcc = new Account();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    相关资源
    最近更新 更多