• 类的声明与实例化及构造方法析构方法(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是显式销毁
    //当一个页面执行完成自动销毁
    
    
    ?>
    

      

  • 相关阅读:
    Convert Sorted Array to Binary Search Tree数组变成高度平衡的二叉树
    695. Max Area of Island最大岛屿面积
    257. Binary Tree Paths返回所有深度优先的遍历
    112. Path Sum二叉树路径和
    对称二叉树 · symmetric binary tree
    100. Same Tree同样的树
    计数排序 (Counting Sort)
    基数排序 (Radix Sort)
    Linux 文件基本属性
    gensuitemodule (Mac OS) – Python 中文开发手册
  • 原文地址:https://www.cnblogs.com/ggbd-lie/p/3290451.html
Copyright © 2020-2023  润新知