PHP学习笔记十九【析构函数】

<?php
   class Person{
     public $name;
     public $age;

     public function __construct($iname,$iage)
     {
       $this->name=$iname;
       $this->age=$iage;
     }
     //定义一个析构函数 两个下划线  ,析构函数在对象被释放的时候会自动调用
     //最先被创建最后被销毁,因为是放入栈中,栈是先进后出
     //析构函数调用的时机
     //1.当程序(进程结束)退出时
     //2.当一个对象成为垃圾对象(没有任何变量再引用它,或是变为null)的时候,该对象的析构函数会自动调用
     public function __destruct()
     {
       echo  $this->name."销毁资源<br/>";
     }
   }
   $p1=new Person("张三",5);

   $p1=null;//一旦没有引用就会被回收,所以这个时候$p1的析构函数会先被调用
   $p2=new Person("李四",6)
    $p3=new Person("李六",6)

    /*
    $p1=new Person("张三",5);
   $p4=$p1;
   $p1=null;//如果是这样那么$p1会最后被回收,因为$p4有引用它,所以它还没成为垃圾对象
   $p2=new Person("李四",6)
    $p3=new Person("李六",6)

    */
?>
时间: 2024-12-24 07:45:28

PHP学习笔记十九【析构函数】的相关文章

angular学习笔记(十九)

本篇主要介绍angular使用指令修改DOM: 使用angular指令可以自己扩展html语法,还可以做很多自定义的事情.在后面会专门讲解这一块的知识,这一篇只是起到了解入门的作用. 与控制器,过滤器,服务,一样,可以通过模块实例的directive的方法来创建指令: var someModule = angular.module('SomeModule',[]); someModule.directive('directiveName',function(){ return { link: f

[傅里叶变换及其应用学习笔记] 十九. 采样定理在音乐上的应用

采样定理在音乐上的应用 人可以听到20~20000Hz的声音,上限为20000Hz,即$\frac{p}{2} = 20000$,$p=40000$.那么采样率至少要为40000.CD的采样率采用44100(44.1kHz),据传,在采集模拟信号时采用44100,是因为这些采集的机器以该采样率设置时最为正常,而并非出于理论上的考虑. 在采样时,若采用低于40000的采样率,就会造成声音的高频部分混叠(alias),也有人把这个说成是“低频混叠了变为高频部分,而高频的部分被混叠为低频部分”,实际上

Android学习笔记十九.使用ContentProvider实现数据共享(一)

一.Android如何实现数据共享?  为了在应用程序之间交换数据,Android提供了ContentProvider,ContentProvider是不同应用程序之间进行数据交换的标准API,当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用程序就可通过提供ContentProvider来实现,其他的应用程序就可以通过ContentResolver来操作ContentProvider暴露的数据.一旦某个应用程序通过ContentProvider暴露了自己的数据操作接口,那么不管该应用程

Java基础学习笔记十九 IO

File IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上. 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作.当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作.因此我们把这种输入和

JSTL 标签库 使用(web基础学习笔记十九)

标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库  JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2.流程控制标签:if.choose.when.otherwise3.循环标签:forEach.forTokens4.URL操作标签:import.url.redirect 二.表达式控制标签 2.1.out标签 <c:out value="" escapeXml="&quo

yii2源码学习笔记(十九)

view剩余代码 1 /** 2 * @return string|boolean the view file currently being rendered. False if no view file is being rendered. 3 * 当前正在渲染的视图文件 4 */ 5 public function getViewFile() 6 { 7 return end($this->_viewFiles); 8 } 9 10 /** 11 * This method is invo

SharpGL学习笔记(十九) 摄像机漫游

所谓的摄像机漫游,就是可以在场景中来回走动. 现实中,我们通过眼睛观察东西,身体移动带动眼睛移动观察身边的事物,这也是在漫游. 在OpenGL中我们使用函数LookAt()来操作摄像机在三维场景中进行漫游. LookAt(double eyex, double eyey, double eyez, double centerx, double centery, double centerz, double upx, double upy, double upz); 我们通过改变LookAt的参数

学习笔记 十九: LNMP搭建

一 LNMP简介 二 LNMP安装配置 三 案例 workpress

python 学习笔记十九 django项目bbs论坛

跨站请求伪造保护 CSRF 中间件和模板标签提供对跨站请求伪造简单易用的防护.某些恶意网站上包含链接.表单按钮或者JavaScript ,它们会利用登录过的用户在浏览器中的认证信息试图在你的网站上完成某些操作,这就是跨站攻击.还有另外一种相关的攻击叫做“登录CSRF”,攻击站点触发用户浏览器用其它人的认证信息登录到其它站点. 全局: 中间件 django.middleware.csrf.CsrfViewMiddleware 局部: @csrf_protect,为当前函数强制设置防跨站请求伪造功能