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


Posted in PHP onJanuary 26, 2016

本文实例讲述了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 相关文章推荐
JS实现php的伪分页
May 25 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
php实现购物车功能(上)
Jul 23 PHP
php面向对象编程self和static的区别
May 08 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
详细对比php中类继承和接口继承
Oct 11 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
php实现爬取和分析知乎用户数据
Jan 26 #PHP
简单谈谈php延迟静态绑定
Jan 26 #PHP
php制作的简单验证码识别代码
Jan 26 #PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 #PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 #PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 #PHP
PHP实现的oracle分页函数实例
Jan 25 #PHP
You might like
如何在PHP中使用Oracle数据库(6)
2006/10/09 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
浅析Python中signal包的使用
2015/11/13 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
基于python log取对数详解
2018/06/08 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
惠普香港官方商店:HP香港
2019/04/30 全球购物
廉政教育心得体会
2014/01/01 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang