1

在这个程序中,我尝试探索 PHP 中的 Oops 概念,但这里的东西与 java 有很大不同。在示例程序中,我创建了一个抽象类bird,扩展了bird类的类parrot和一个可飞行的接口。之后,我将上述所有类和接口包含在一个 php 文件中。让我们看看代码

<?php
    include 'bird.php';
    include 'parrot.php';
    include 'flyable.php';

//creating a object
$bird1=new parrot();
echo $bird1->display();
echo("<br/>");
bird $bird2=new parrot();  //shows error

?> 

我想问的是,当我尝试定义对象类的类型时,例如bird $bird1= new parrot(); 在他的线上我得到了错误,但这个东西在java中完美地工作。请让我知道如何在 php 中完成这件事。

4

2 回答 2

4

您确实应该显示错误,但这一定是由于您在此行上使用了 Java 样式类型提示:

bird $bird2=new parrot();

只需删除初始的bird,因为这在 PHP 中是无效的语法。

PHP 中唯一使用类型提示的地方是方法参数。有关更多信息,请参阅php 文档

于 2013-08-07T10:59:55.460 回答
0

请让我知道如何在 php 中完成这件事。

我对 Java 不太熟悉,但从你的伪代码(失败的那个)来看:

bird $bird2 = new parrot();

你在这里表达的是变量$bird2的类型bird。PHP 中的变量不是严格类型的,因此 PHP 中没有这样的概念。相反,在 PHP 中,变量可以是任何类型,并且总是可以更改它。甚至可以取消设置。

现在这是好事还是坏事?好吧,对于您的问题,这很糟糕,因为您在 Java 中所做的事情在 PHP中是不可能的。

一般的坏/好的事情是品味问题,什么不是,所以只要了解语言差异并尽量充分利用它。

BTW 在 PHP$bird2中既是 abird 又是 a parrot,检查这一点的方法是使用 Type-Hintinginstanceof和使用Type-Hinting

于 2013-08-08T13:57:38.560 回答