程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 細說php(七) 面向對象編程

細說php(七) 面向對象編程

編輯:關於PHP編程

細說php(七) 面向對象編程


一、類的聲明與對象初始化

1.1 在類中聲明成員屬性時: 前面必須有修飾詞, 當不知道使用那個時, 就使用var, 如果知道使用那一個修飾關鍵字, 就不使用var了

var $color;

var $name = "zhangsan"


1.2 一個文件只保存一個類, 文件名中包含類名, 如:類名.class.php

person.class.php


1.3 使用new關鍵字來創建對象, 創建了一個對象就在內存中分配一個空間 $對象引用 = new 類名;

$person = new Person

name;
		}
	}
	
	$p1 = new Person;   // Java: Person person = new Person;
	$p1->name = "lisi"; // Java: person.name = "lisi";
	$p1->say();         // Java: person.say();
?>
1.4 對象在內存中的分配

a. 棧內存: 存放局部變量

b. 堆內存: 存放對象

c. 共享區: 存放靜態變量

d. 代碼段: 存放方法等


二、構造函數和析構函數

2.1 構造函數:

a. 構造方法是對象創建完成之後, 第一個自動調用的方法

b. 在PHP4中, 和類同名的方法就是構造方法

c. 在PHP5中, 構造方法選擇使用魔術方法 __construct() , 所有類中聲明構造方法都使用這個名稱

優點: 在改變類名時構造方法不用改變

d. 構造方法的作用: 為成員屬性初始化

name=$name;
			$this->age=$age;
			$this->sex=$sex;
		}
	
		function say(){
			echo "我的名子:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。
"; } } $p1=new Person("zhangsan", 20, "女"); $p2=new Person("lisi", 25); $p3=new Person("wangwu"); $p1->say(); $p2->say(); $p3->say(); ?>

2.2 析構函數:

a. 析構函數是指當對象被釋放之前最後一個自動調用的方法

b. 和Java一樣, PHP也使用垃圾回收器釋放資源, 只不過PHP調用後馬上回收, 而Java不是.

c. 析構函數的作用: 關閉一些資源, 做一些清理工作, 使用魔術方法 __destruct()

name=$name;
			$this->age=$age;
			$this->sex=$sex;
		}
	
		function say(){
			echo "我的名子:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。
"; } function __destruct(){ echo $this->name."再見!
"; } } $p1=new Person("zhangsan", 20, "女"); $p1->say(); $p1 = null; // 我的名子:zhangsan,我的年齡:20,我的性別:女。 // zhangsan再見! ?>


2.3 魔術方法

魔術方法是系統給我們提供好的, 在不同時刻為完成某一功能而自動調用的方法, 不同的魔術方法有不同的調用時機

魔術方法以 __ 開頭

__construct(); // 構造函數
__destruct(); // 析構函數
__set();
__get();
__isset();
__unset();
__clone();
__call();
__sleep();
__weakup();
__toString()
__autoload();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved