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 相关文章推荐
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 PHP
php简单提示框alert封装函数
Aug 08 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
PHP不用递归实现无限分级的例子分享
Apr 18 PHP
跟我学Laravel之快速入门
Oct 15 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
php获取是星期几的的一些常用姿势
Dec 15 PHP
PHP代码覆盖率统计详解
Jul 22 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
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
Vue表单实例代码
2016/09/05 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
JS实现留言板功能
2017/06/17 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
Python的垃圾回收机制深入分析
2014/07/16 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
Python中字典和集合学习小结
2017/07/07 Python
详解【python】str与json类型转换
2019/04/29 Python
在Python中COM口的调用方法
2019/07/03 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
作文评语集锦大全
2014/04/23 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
项目投资意向书范本
2015/05/09 职场文书
Python Django ORM连表正反操作技巧
2021/06/13 Python
php双向队列实例讲解
2021/11/17 PHP