【发布时间】:2013-12-03 12:37:44
【问题描述】:
我有两个类 A 和 B,其中 B 扩展了 A 并添加了一些方法。我有一个 C 类,其方法接受 A 作为泛化目的的参数。问题是,一旦进入方法,我想访问对象上 B 类的方法,但我不能这样做。当我转储对象并知道它保存数据时,不要得到错误,但返回值为 null。 抱歉,如果这看起来很荒谬,但我正在尝试使用您在正常继承中所期望的行为。也许是我错过了一些东西,这是我的错,但不知道这里发生了什么。 请,如果你有任何想法如何做到这一点,请帮助我。
一些代码:
public function createProject(AssociatedProjectInterface $project_data){
if(!is_a($project_data, 'class\path\GithubProject')){
throw new InvalidArgumentException('The argument needs to be of type: GithubProject.');
}
$repo = $this->client->api('repo')->create(
$project_data->getTitle(),
$project_data->getDescription(),
null,
!$project_data->getIsPrivate(),
null,
$project_data->getIssuesEnabled(),
$project_data->getWikiEnabled());
}
谢谢。
【问题讨论】:
-
是否有任何代码显示您尝试访问此方法的方式?
-
请给我们看一个最小的代码示例。
-
你能发布一些例子吗?另外,php.net/manual/en/language.oop5.traits.php 浮现在脑海中。
-
请稍等,我发现了其他可能导致问题的原因。对不起这是我的错。无论如何,@GolezTrol,如果您发表评论,我会选择它,如果它真的像那样工作,因为它回答了我担心的根源。谢谢大家。
-
我已经做到了,给出的答案描述了方法调用与继承在 PHP 中的工作方式。我希望它已经足够并且可以帮助您找到您的问题,因为坦率地说,我无法通过您发布的代码 sn-p 来判断问题到底是什么。
标签: php class inheritance methods