当前位置: 首页 > 编程笔记 >

PHP类的声明与实例化及构造方法与析构方法详解

储志业
2023-03-14
本文向大家介绍PHP类的声明与实例化及构造方法与析构方法详解,包括了PHP类的声明与实例化及构造方法与析构方法详解的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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 
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就是构造函数
*/
?>

与构造函数相对应的就是析构函数,即当对象销毁的时候执行的

如下所示:

<?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是显式销毁
//当一个页面执行完成自动销毁
?>

更多关于PHP面向对象相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》

希望本文所述对大家PHP程序设计有所帮助。

 类似资料:
  • 上一个小节我们学习了 Python 的类属性和实例属性的知识点,这个小节我们还是会学习关于类的知识。这节课我们会学习类的构造方法、析构方法和实例方法。 1. 实例方法 1.1 定义 实例方法是用于访问对象实例属性的方法,语法如下: class 类: def 实例方法(self): self.属性 实例方法定义在类中,它的第一个参数 self 指向调用该方法的对象,在实例方

  • 本文向大家介绍Java构造器(构造方法)与方法区别说明,包括了Java构造器(构造方法)与方法区别说明的使用技巧和注意事项,需要的朋友参考一下 构造器,又称为构造方法。构造器用于构造该类的实例,也就是对象。 格式如下:[修饰符] 类名 (形参列表){//n条语句} 构造方法是一种特殊的方法,与一般的方法区别:    1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。

  • 问题内容: 我刚刚开始使用Java进行编程。在讨论方法和构造函数时,我们缺少使用的文字。我不确定到底是什么方法或构造函数以及什么使每个方法唯一。有人可以帮我定义它们并区分两者吗? 问题答案: 构造函数与方法之间的重要区别在于,构造函数初始化使用运算符创建的对象,而方法对已存在的对象执行操作。 构造函数不能直接调用。当关键字创建对象时,将隐式调用它们。可以直接在已使用创建的对象上调用方法。 构造函数

  • 本文向大家介绍详解c# 类的构造方法,包括了详解c# 类的构造方法的使用技巧和注意事项,需要的朋友参考一下 一、构造方法 类的构造方法是类的成员方法的一种,它的作用是对类中的成员进行初始化操作。类的构造方法分为:     1.静态构造方法     2.实例构造方法 1.静态构造方法 类的静态构造方法是类的成员方法的一种,它的作用是对类中的静态成员进行初始化操作。下面请看代码实例: 首先,上面这段代

  • 本文向大家介绍PHP构造函数与析构函数用法示例,包括了PHP构造函数与析构函数用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP构造函数与析构函数用法。分享给大家供大家参考,具体如下: 在实例化一个新对象时,构造方法和析构方法都会被自动调用,若有继承则会使用父类的对应方法。 析构方法在三种情况下会被调用: ① 使用unset()销毁一个对象,若存在对象传值则不会被调用; ② 改

  • 本文向大家介绍php实现parent调用父类的构造方法与被覆写的方法,包括了php实现parent调用父类的构造方法与被覆写的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现parent调用父类的构造方法与被覆写的方法。分享给大家供大家参考。具体分析如下: 覆写:被重新设计。 在子类中定义构造方法时,需要传递参数给父类的构造方法,否则我们得到的可能是一个构造不完整的对象。 要