在PHP中创建预定义类类型的对象


Creating object in PHP of predefined class type

在这个程序中,我试图探索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并使用类型提示