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. java中驼峰与下横线格式字符串互转算法

    public static final char UNDERLINE = '_'; /** * 驼峰格式字符串转换为下划线格式字符串 * * @param param * @return */ pub ...

  2. oracle权限的分配

    一.创建 sys:   //系统管理员,拥有最高权限 system://本地管理员,次高权限 scott: //普通用户,密码默认为tiger,默认未解锁 二.登陆 sqlplus / as sysd ...

  3. [Effective C++系列]-透彻了解inlining的里里外外

    Understand the ins and outs of inlining.   [原理] Inline函数背后的做法是将“对函数的每一个调用”都用函数本体(function body)替换之.其 ...

  4. c语言合法标识符

    #include <iostream>#include <stdio.h>using namespace std;char str[100][51];int main() { ...

  5. Android studio运行时报错,方法,类找不到,或者JVM内存溢出解决方案

    Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessExceptio ...

  6. JavaScript基本概念(数组)

    1.数组方法 /** * join(str) * 将数组元素转换为字符串并使用参数中的字符串将各字符串链接起来 */ var a = [1, 2, 3]; a.join(); // "1,2 ...

  7. 《零基础学习Python》01

    前言 Python是一种跨平台的语言 安装Python(Mac OS X) 1.在www.python.org/downloads 中下载Python,然后像安装其他软件一样进行安装. 2.打开: 找 ...

  8. Oracle EBS-SQL (WIP-1):检查非标任务没挂需求.sql

    SELECT WE.WIP_ENTITY_NAME, MSI.SEGMENT1, MSI.DESCRIPTION, WDJ.CLASS_CODE, WDJ.START_QUANTITY, WDJ.SC ...

  9. 支持https的压力测试工具

    支持https的压力测试工具 测试了linux下的几种压力测试工具,发现有些不支持https,先简单总结如下: 一.apache的ab工具 /home/webadm/bin/ab -c 50 -n 1 ...

  10. 海康威视研究院ImageNet2016竞赛经验分享

    原文链接:https://zhuanlan.zhihu.com/p/23249000 目录 场景分类 数据增强 数据增强对最后的识别性能和泛化能力都有着非常重要的作用.我们使用下面这些数据增强方法. ...