類的聲明與實例化及構造方法析構方法(PHP學習)

<?php 

class human{
	public static $leg=2;
	public $name = 'leo';
	public $age = '25';

	public function cry(){

	}
}

$leo = new human();
print_r($leo);
/*返回
human Object ( [name] => leo [age] => 25 )
*/
//爲何沒有leg呢?
//是由於加了static,就變成了類的屬性了,是屬於全部
//經過這個類實例實例後的對象的
//public是權限修飾符,權限修飾符有public,protected,private
//在PHP4常常用到var,這個如今不怎麼也不推薦用,就至關於public
//在PHP5中會把var解析成public


?>

有沒有什麼辦法能夠在new對象的時候,經過傳參數來改變對象的屬性呢?而不是千篇一概php

答:能夠在類中定義構造方法,即在初始化對象的時候,就會執行,而且能夠接收參數函數

以下所示:this

<?php 

class human{
	public static $leg=2;
	public $name = 'leo';
	public $age = '25';

	public function __construct($name,$age){
		$this->name=$name;
		$this->age=$age;
	}
}

$leo = new human('macro','23');
print_r($leo);
/*
返回
human Object ( [name] => macro [age] => 23 )
能夠看到參數起做用了
__construct就是構造函數
*/




?>

與構造函數相對應的就是析構函數,即當對象銷燬的時候執行的對象

以下所示:blog

<?php 

class human{
	public static $leg=2;
	public $name = 'leo';
	public $age = '25';

	public function __construct($name,$age){
		$this->name=$name;
		$this->age=$age;
		echo $this->name."對象生成啦<br />";
	}
	public function __destruct(){
		echo $this->name."對象銷燬啦<br />";
	}
}

$leo = new human('macro','23');
$tim = new human('tim','18');

unset($leo);
echo '~~~~~~~~~~~~~~~~~~~~<br />';


/*
返回:
macro對象生成啦
tim對象生成啦
macro對象銷燬啦
~~~~~~~~~~~~~~~~~~~~
tim對象銷燬啦
*/
//__destruct是析構函數,即對象銷燬的時候調用
//爲何$tim 沒有unset 也執行了析構函數
//這是一個隱式銷燬,unset是顯式銷燬
//當一個頁面執行完成自動銷燬


?>
相關文章
相關標籤/搜索