PHP面向对象编程(三)
时间:2010-02-03 来源:kkboy_dyc
上次我们尝试着定义了“属性”并设置了“属性”的值,通过“方法”成功的取出了属性值。但你要知道,在现实中我们通常不这样来做,我们在定义类的时候,通常是有目的性的,大多数类通常都具备一些固定的属性,比如说我们定一个类,名字叫“人类”,人类不管是男人女人非洲亚洲黄色棕色春哥还是曾哥,都只有一个脑袋。。这就表明它具备一个固定属性,如果我们在应用中需要使用这样类似的固定属性,那么我们难道要每使用一次,就要定义一次么?当然不需要,PHP提供了构造函数,来解决这个问题(当然了,所有面向对象编程都有个东西)。
记住,当我们给一个类创建对象的时候,PHP会自动检索是否存在“构造函数”,它每次都这么做。所以如果你有什么需要“初始化”的东西,尽管往构造函数中放吧。
在PHP5中,我们通过 __construct()来表示构造函数。我们继续通过上一次的例子演示构造函数的使用:
<?php |
我们打开test.php 文件,修改为如下代码:
<?php |
在类文件中,我们定义了两个属性,$_type,$_title 我们通过构造函数的参数传递来给这两个属性赋值,当然了,在实际环境中,我们不需要这么做,如果你真的有默认值要设定,直接在构造函数中定义好就行了,不需要通过参数传递,这样做只是为了程序演示。
在test.php文件中,我可以看到,在创建产品对象的时候,我们直接通过参数的传递为Product类指定了其默认属性,而不需要在通过其他的方法赋值。然后,我们通过getProductType来显示属性的具体值。
其实以上赋值与取值的过程,我们用数组完全可以实现,但他们彼此的意义却又本质的不同,数组中的数据我们是不可控的,同时也是无法得到保护的,我们通过构造函数来实现这样的操作,就意味着整个数据的传递过程是完全被我们控制的,外界是无法改变它的。