在这个程序中,我尝试在PHP中探索Oops概念,但这里的东西与java有很大的不同。在示例程序中,我创建了一个抽象类bird,类parrot,它扩展了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中完成这件事。
答案 0 :(得分:4)
你真的应该显示错误,但这肯定是因为你在这一行上使用了Java样式类型提示:
bird $bird2=new parrot();
只需删除初始bird
,因为这是PHP中无效的语法。
PHP中使用类型提示的唯一位置是方法参数。有关详细信息,请参阅php docs。
答案 1 :(得分:0)
请让我知道如何在php中完成这件事。
我不太熟悉Java,但是你的伪代码(失败的代码):
bird $bird2 = new parrot();
您在此处表达的是变量$bird2
的类型为 bird
。 PHP中的变量不是严格类型的,因此,PHP中没有这样的概念。而在PHP中,变量可以是任何类型,它总是可以改变它。甚至可能没有设置。
现在是好还是坏?好吧,对于你的问题,这很糟糕,因为你在Java中所做的只是在PHP中不可能。
一般的坏/好事是一个品味问题,什么不是,所以只要了解语言差异,并尽力使其发挥最大作用。
PHP中的BTW$bird2
同时是 bird
和 parrot
,这是一种检查方式{{} 3}}并使用instanceof
。