Rumah > pembangunan bahagian belakang > tutorial php > php:构造方法的说明详解

php:构造方法的说明详解

黄舟
Lepaskan: 2023-03-12 10:10:01
asal
2678 orang telah melayarinya

1、构造方法的8点说明:
①构造方法名和类名相同(php4版),php5版的构造方法名可以和类名相同,也可以是construct()
②构造方法没有返回值
③构造方法的主要作用是完成对新对象的初始化,并不是创建对象本身。
④在创建新对象后,系统会自动的调用该类的构造方法,不需要自己写代码调用   
⑤一个类有且只有一个构造方法,在php5后虽然construct()  和 类名() 可以共存,但是实际上也只能使用一个。
⑥如果没有给类自定义构造方法,则该类使用系统默认的构造方法。 */
⑦如果给类自定义了构造方法,则该类的默认构造方法被覆盖。

⑧构造方法的默认访问修饰符是public

2、在php 5 中一个类可以同时有 两种形式的构造方法:
      construct() 和 类名() , 当两个同时存在的时候,优先调用construct(), 请大家以后使用construct()

      两种构造函数如下:

publicfunction  construt(){//函数体;}      
publicfunction 类名(){//函数体;}
Salin selepas log masuk


PHP4中只能有一种形式的构造函数:

public
function 类名()
{
//函数体;
}
Salin selepas log masuk

3、构造方法注意事项
(1)一旦自定义了一个构造函数,默认的构造函数就被覆盖了,这时在创建对象的时候就要使用自定义的构造函数.
(2)一个类只能有一个构造函数.(不能重载)

4、构造方法代码实例:

<?php
//屏蔽程序 notice 级错误  
error_reporting(E_ALL^E_NOTICE); 
//php面向对象编程之构造方法: 
class Person1{
       public $name;
       public $age;
}
$p1=new Person1();
//再给属性赋值
$p1->name="宋江";
$p1->age=33;
//this的理解:
class Person2
{
	public $name;
	public $age;
	//这个就是构造方法,php5独有
	public function construct($iname,$iage)
	{
		//这里如果我们直接用$name,$age,系统认为我们是创建了两个新的变量
		//$name=$iname;
		//$age=$iage;
		//此处的$this->name、$this->age则解决了以上问题,加上$this之后该变量就是指上面创建的成员属性;
		//$this 本质可以理解就是这个对象的地址,哪个对象传递时使用到$this, 就是传递哪个对象地址;
Salin selepas log masuk
<span style="white-space:pre">		</span>//this就相当于传的是地址,把上面$name的地址传过来了而不是再新建一个$name变量
Salin selepas log masuk
		//注意:$this只能在类中使用,不能在类外部使用.
		$this->name=$iname;
		$this->age=$iage;
		echo "执行构造方法<br/>";
	}  
}
$p1=new Person2("张清",90);
echo "我是".$p1->name."--我现在的年龄是".$p1->age."<br/>";
$p2=new Person2("宋江",33);
echo "我是".$p2->name."--我现在的年龄是".$p2->age."<br/>";

class Cat
{	
	//每一个类中必须有一个构造方法,若我们不定义,系统会自动生成
	//若不定义构造方法,则该类使用系统默认的构造方法,类中默认的构造方法如下:      
	function construt()
	{
		
	}      
}
$cat1=new Cat();
?>
Salin selepas log masuk



Atas ialah kandungan terperinci php:构造方法的说明详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan