1.存储器方法——用于限制对象的变量属性

对于弱类型的PHP,存储器方法来限制变量属性显得非常重要!

通过为所有属性创建存储器方法,可以简化添加数据验证或新的业务逻辑的工作,也可以简化在后边对对象执行其他的改动。

所以,应该总是对属性使用存储器方。这样,将来对业务逻辑和数据验证需求执行的改动都将跟家容易实现。

<?php

  class Demo{

    private $_name;

    public function getName(){

      return $this->_name;

    }

    

    public function setName($name){

      if(!is_string($name)||strlen($name)==0){

        throw new Exception("Invalid name value!");

      }

      $this->_name = $name; 

    }

  }

?>

2.对象初始化和销毁

1>.对象初始化

class Demo{

  private $name;

  public function _construct($name){

    $this->name = $name;

  }

}

2.销毁对象

销毁对象的时机

1>.请求的页面已经运行完成

2>.创建的对象变量已经不在其作用域内

3>.变量被显式地设置为null

在PHP6中,可以在销毁对象之前做一些处理工作,并且在销毁发生时采取相应措施。

_destruct函数,不带参数,在销毁对象之前就会自动调用该函数,前提class中存在该函数。

应用场景:

1.关闭已经由该类打开的文件语柄

2.关闭已经由该类打开的数据库连接

3.在销毁对象之前执行任何最后的内部处理工作。

PHP_OOP的更多相关文章

  1. 01.php面向对象

    下面是php_oop的一些基本知识 <?php //echo "<meta charset='utf-8'>" //设置中文输出 //1.面向对象类的建立: cl ...

  2. PHP面相对象编程-重载、覆盖(重写) 多态、接口

    http://www.ctolib.com/topics-21262.html http://cnn237111.blog.51cto.com/2359144/1284085 http://blog. ...

  3. PHP Swoole-Demo TCP服务端简单实现

    tcp 服务端简单demo与client . <?php /** * author : rookiejin <mrjnamei@gmail.com> * createTime : 2 ...

随机推荐

  1. Oauth2认证以及新浪微博开放平台应用

    一.OAuth2.0概述 大部分API的访问如发表微博.获取私信,关注都需要用户身份,目前新浪微博开放平台用户身份鉴权有OAuth2.0和Basic Auth(仅用于应用所属开发者调试接口),新版接口 ...

  2. Android开发环境的搭建之(二)Android Studio的安装

    (1)  下载AS(android studio)1.3.2并安装android-studio-bundle-141.2178183-windows.exe.下载官方链接http://www.andr ...

  3. 各版本SDK Tools及ADT下载技巧

    我们在开发的时候,尤其是使用Eclipse安装ADT插件进行环境配置,我们需要从下载ADT插件及SDK,当我们从官网下载的时候,有的时候可能找不到下载的地方或者下载不到自己想要的版本,我就在此总结下如 ...

  4. Struts2 访问web元素

    访问web元素的四种方法(耦合,依赖注入).(耦合,非依赖注入).(非耦合,依赖注入).(非耦合,非依赖注入) 耦合:可以得到HttpServletResponse,HttpServletReques ...

  5. TCP/IP详解之:IP选路 动态选路协议

    第九章 IP选路 netstat -rn 显示路由表 初始化路由表的两种方法: 方法1:在配置文件中指定静态路由(不常用) 方法2:运行路由守护程序 或者 使用ICMP路由器发现报文 没有到达目的地的 ...

  6. laravel中间件源码分析

    laravel中间件源码分析 在laravel5.2中,HTTP 中间件为过滤访问你的应用的 HTTP 请求提供了一个方便的机制.在处理逻辑之前,会通过中间件,且只有通过了中间件才会继续执行逻辑代码. ...

  7. pycharm Run/Debug Configrations

    操作系统是win10,今天维护scrapy爬虫的时候发现pycharm调试配置失效了,导致花了好大力气去搜索配置的路径.在这儿记录下来方便以后查看. Script:C:\Python27\Lib\si ...

  8. 不调用库函数实现 strCpy

    实现函数时,首先要弄清楚特殊情况,边界条件要搞清. char* strCpy(char* src,char* des){ //判断指针是否为空 if(NULL==src||NULL == des) r ...

  9. Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql

    select distinct pla.po_header_id, --pha.type_lookup_code, pha.segment1       采购订单号, appf.full_name   ...

  10. android 为TextView添加边框

    今天需要在TextView上面添加一个边框,但是TextView本身不支持边框,所以只能采用其他方式,在网上查询了一下,主要有三种方式可以实现1.带有边框的透明图片2.使用xml的shape设置3继承 ...