php专区

 首页 > php专区 > PHP高级 > 面向对象MVC > php 类的初始化 - php面向对象

php 类的初始化 - php面向对象

分享到:
【字体:
导读:
          classchild{private$parent;function__construct($parent){$this-parent=$parent;}functiongetnationality(){return$this-parent-nationality;}}$parent=newparent(#39;hispanic#39;);$child=......

php 类的初始化

  1. class child  
  2. {  
  3.     private $parent;  
  4.   
  5.     function __construct($parent)  
  6.     {  
  7.         $this->parent = $parent;  
  8.     }  
  9.   
  10.     function getnationality()  
  11.     {  
  12.         return $this->parent->nationality;  
  13.     }  
  14. $parent = new parent('hispanic');  
  15. $child = new child($parent); 

php中是通过类来完成信息封装的,在php中定义类的语法是:

  1. class class_name // 在面向对象编程类中,习惯上类的第一个字符为大写,并且必须符合变量的命名规则. 
  2. //函数与变量的集合 
  3. }  
  4. ?> 

在定义类时你可以按自已的喜好的格式进行定义,但最好能保持一种标准,这样开发起来会更有效些.

数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的,一个数据成员可以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象.

下面是一个类定义的实际例子,代码如下:

  1. class student  
  2. {  
  3. var $str_name//姓名  
  4. var $str_sex//性别  
  5. var $int_id//学号  
  6. var $int_english//英语成绩  
  7. var $int_maths//数学成绩  

这是一个很普通定义类的简单例子,用于显示学生的学习成绩,类名为student,student类包涵了一个学生的基本属性:姓名、性别、学号、英语成绩和数学成绩.

function我们称之为在类中被定义的函数,在函数中访问类成员变量时,你应该使用$this->var_name,其中var_name 指的是类中被声明的变量,否则对一个函数来说,它只能是局部变量,我们先定义一个input()的函数,用来给实例中的对象赋以初值,代码如下:

  1. function input ( $name$sex$id$englis$maths)  
  2. {  
  3. $this->str_name=$name;  
  4. $this->str_sex =$sex;  
  5. $this->int_id =$id;  
  6. $this->int_englis=$english;  
  7. $this->int_maths=$maths;  
  8. }//开源代码phpfensi.com 

现在我们再定义一个叫“showinfo()”的函数,用于打印学生的基本情况,代码如下:

  1. function showinfo() //定义showinfo()函数  
  2. {  
  3. echo (“姓名:$this->str_name 
  4. ”);  
  5. echo (“性别:$this->str_sex 
  6. ”);  
  7. echo (“学号:$this->int_id 
  8. ”);  
  9. echo (“英语成绩:$this->int_english 
  10. ”);  
  11. echo (“数学成绩:$this->int_maths 
  12. ”);  

而定义好的类则必须使用new关键词来生成对象:$a_student=new student; 

例如我们要为一个名为$wing的对象创建实例,并进行赋值,可以使用下面的代码:

$wing =new student; //用new关键词来生成对象 

$wing ->input (“wing”,”男”,33,95,87);

分别输入wing的姓名、性别、学号、英语成绩、数学成绩,其中姓名和性别是字符型变量,所以需要用双引号,其它为数值型变量则不需要.

通过下面这段完整的源代码,我们就可以很清楚的看到类在php是怎么被运用的,代码如下:

  1. class student  
  2. {  
  3. var $str_name;  
  4. var $str_sex;  
  5. var $int_id;  
  6. var $int_english;  
  7. var $int_maths
  8. function input ( $name$sex$id$english$maths)  
  9. {  
  10. $this->str_name=$name;  
  11. $this->str_sex =$sex;  
  12. $this->int_id =$id;  
  13. $this->int_english=$english;  
  14. $this->int_maths=$maths;  
  15. }  
  16. function showinfo()  
  17. {  
  18. echo (“姓名:$this->str_name 
  19. ”);  
  20. echo (“性别:$this->str_sex 
  21. ”);  
  22. echo (“学号:$this->int_id 
  23. ”);  
  24. echo (“英语成绩:$this->int_english 
  25. ”);  
  26. echo (“数学成绩:$this->int_maths 
  27. ”);  
  28. }  
  29.  
  30. $wing = new student;  
  31. $wing->input (“wing”,”男”,33,95,87);  
  32. $paladin = new student;  
  33. $paladin->input (“paladin”,”女”,38,58,59.5); 
  34. $wing->showinfo();  
  35. $paladin->showinfo(); 

执行结果应是这样的:

姓名:wing 
性别:男 
学号:33 
英语成绩:95 
数学成绩:87 
姓名:paladin 
性别:女 
学号:38 
英语成绩:58 
数学成绩:59.5
分享到:
php 模版设计模 - php面向对象
php 模版设计模 这个模版,不是smarty的那种模版引擎,不是template。,是一种面向对象设计模式方法,使用的地方譬如,作品easerver中,ui部分用的是wxpython,我现在想换成qt,感觉模版在这种功能就能起到一些作用. 重点是,核心功能封装于主类,让子类去继承应用,程序以php代码做演示,代码如下: ...
PHP 5.0中多态性的实现方案浅析 - php面...
PHP 5.0中多态性的实现方案浅析 提要:本文将讨论多态性的概念及其在面向对象设计中的应用,还将分析如何在PHP5中使用多态性以及存在的优缺点。 PHP的最新发行版本中已经实现了对迟绑定的支持。当然,在使用其迟绑定功能时还存在很多问题。如果你使用的是更旧版本的PHP(我的服务器上运行的是...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……