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 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
php中对2个数组相加的函数
Jun 24 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
解析php中heredoc的使用方法
Jun 17 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
PDO::inTransaction讲解
Jan 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
php学习 字符串课件
2008/06/15 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
对Django中内置的User模型实例详解
2019/08/16 Python
python批量修改xml属性的实现方式
2020/03/05 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
世界最大的票务市场:viagogo
2017/02/16 全球购物
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
Ajax和javascript的区别
2013/07/20 面试题
借款协议书范本
2014/04/22 职场文书
期末评语大全
2014/05/04 职场文书
房展策划方案
2014/06/07 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android