欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php:构造方法的说明详解

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

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

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

两种构造函数如下:

publicfunction  construt(){//函数体;}      
publicfunction 类名(){//函数体;}


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

public
function 类名()
{
//函数体;
}

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, 就是传递哪个对象地址;
<span style="white-space:pre">		</span>//this就相当于传的是地址,把上面$name的地址传过来了而不是再新建一个$name变量
		//注意:$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();
?>


以上就是php:构造方法的说明详解的详细内容,更多请关注其它相关文章!

相关标签: php 详解 说明