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 相关文章推荐
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
PHP引用的调用方法分析
Apr 25 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
Linux下快速搭建php开发环境
Mar 13 PHP
PHP一致性hash分布式算法封装类定义与用法示例
Aug 04 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
PHP接入微信H5支付的方法示例
Oct 28 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
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
Python简单日志处理类分享
2015/02/14 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
python 实现图片裁剪小工具
2021/02/02 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
error和exception有什么区别
2012/10/02 面试题
妇产科护士自我鉴定
2013/10/15 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
小学生综合素质评语
2014/04/23 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
经理助理岗位职责
2015/02/02 职场文书
老龙头导游词
2015/02/11 职场文书
研究生个人学年总结
2015/02/14 职场文书
环保证明
2015/06/23 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android