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

时间:2013-08-07 10:57:16

标签: php oop

在这个程序中,我尝试在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中完成这件事。

2 个答案:

答案 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