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 相关文章推荐
风格模板初级不完全修改教程
Oct 09 PHP
第十二节--类的自动加载
Nov 16 PHP
php5 and xml示例
Nov 22 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
php中stream(流)的用法
Mar 25 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
微信自定义分享php代码分析
Nov 24 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
Dec 10 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 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
一个简单的js树形菜单
2011/12/09 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
vue.js表格分页示例
2016/10/18 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
全球度假村:Club Med
2017/11/27 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
办理护照介绍信
2014/01/16 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
2014年保卫工作总结
2014/12/05 职场文书
毕业典礼邀请函
2015/01/31 职场文书