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 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
PHP数组内存耗用太多问题的解决方法
Apr 05 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
AJAX的跨域访问-两种有效的解决方法介绍
Jun 22 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
php中文验证码实现示例分享
Jan 12 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
YII中assets的使用示例
Jul 31 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
tp5递归 无限级分类详解
Oct 18 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动态创建Flash动画
2006/10/09 PHP
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
超级强大的表单验证
2006/06/26 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
Python列表(list)常用操作方法小结
2015/02/02 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python实现ping指定IP的示例
2018/06/04 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
Python多图片合并PDF的方法
2019/01/03 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python 互换字典的键值对实例
2019/02/12 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
python处理大日志文件
2019/07/23 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
研发工程师的岗位职责
2013/11/18 职场文书
党员的自我评价范文
2014/01/02 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
入股协议书
2014/04/14 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
python OpenCV学习笔记
2021/03/31 Python