在这个程序中,我试图探索PHP中的Oops概念,但这里的内容与java有很大不同。在示例程序中,我创建了一个抽象类bird,类鹦鹉,它扩展了bird类和一个可飞行的接口。之后,我将上述所有类和接口都包含在一个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中完成这件事。
您确实应该显示错误,但这肯定是因为您在这一行使用了Java风格的类型提示:
bird $bird2=new parrot();
只需删除初始的bird
,因为这在PHP中是无效的语法。
PHP中唯一使用类型提示的地方是方法参数。有关更多信息,请参阅php文档。
请告诉我如何在php中完成这件事。
我对Java不太熟悉,但从你的伪代码(失败的代码)来看:
bird $bird2 = new parrot();
这里所表达的是,变量$bird2
的类型为bird
。PHP中的变量不是严格类型化的,因此,PHP中没有这样的概念。相反,在PHP中,变量可以是任何类型,并且它可以随时更改它。它甚至可以是未设置的。
这是好是坏?好吧,对于你的问题,这很糟糕,因为你在Java中所做的只是在PHP中不可能的。
一般的坏/好是品味的问题,所以只要了解语言的差异,并努力做到最好。
PHP $bird2
中的BTW既是bird
又是parrot
,一种检查方法是使用instanceof
并使用类型提示。