【php】面向对象(五)
一、 类型约束:
a) 约束函数可传入的参数类型
二、 类的遍历
a) Foreach
b) 可以将类当中的所有成员属性遍历出来
三、 关于操作类与对象的一些函数:
a) 判断函数
i. Function_exists() 判断一个函数是否存在
ii. Class_exists() 判断一个类是否存在
b) 魔术常量:
i. __FILE__ 获取当前文件的绝对路径
ii. __LINE__ 获取当前代码所在的行号
iii. __FUNCTIONS__ 获取当前函数的名称
iv. __METHOD__ 获取当前方法的名称
v. __CLASS__ 获取当前文件的名称
c) 判断属性、方法的函数:
i. Property_exists() 检测类当中的某一个属性是否被设置
ii. Method_exists() 检测类当中的某一个方法是否被设置
iii. Get_object_vars() 获取对象当中的属性列表
iv. Get_class_vars() 获取类当中的属性列表
v. Get_class_methods() 获取类当中的方法列表
vi. Get_class(); 获取对象实例化的类名
四、 异常处理:
a) Try{
检测一个事件,如果该事件存在异常,则抛出一个异常给(将一个系统基类Exception类实例化,并抛给catch后面的变量进行存储!该变量可以包含积累当中的各类方法!)
}catch(Exception $e){
对try代码当中存在异常的类报相应的错误信息!
$e->getMessage(); 获取错误信息
$e->getCode(); 获取错误编码
$e->getFile(); 获取报错文件的绝对路径
$e->getLine(); 获取报错行所在的行号
}
//异常处理
$b = 0;
try{
if($b==0){
throw new Exception('对不起,除数不能为0',101); //基类
}
$c = 100 / $b;
echo $c;
}catch(Exception $e){ //此处将try代码当中的错误进行输出
echo $e->getMessage().'<br />'; //获取报错的信息!
echo $e->getCode().'<br />'; //获取错误编码
echo $e->getFile().'<br />'; //获取当前报错文件的绝对路径
echo $e->getLine().'<br />'; //获取当前报错行的行号 }
【php】面向对象(五)的更多相关文章
- 疯狂java学习笔记之面向对象(五) - 封装、继承、多态
一.封装: 封装的概念: - 合理的隐藏:隐藏不想被外界操作的Field.方法.构造器 - 合理的暴露:一般就是希望给别人调用的方法 e.g:显示器(按键暴露出来操作,但实际的东西/细节方法被隐藏起来 ...
- Python 面向对象(五) 描述器
使用到了__get__,__set__,__delete__中的任何一种方法的类就是描述器 描述器的定义 一个类实现了__get__,__set__,__delete__中任意一个,这个类就是描述器. ...
- Java学习笔记12(面向对象五:构造方法、this再探)
在开发中,经常需要在创建对象的同时明确对象对的属性值, 比如一个Person对象创建时候就应该有age和name等属性 那么如何做到在创建对象的同时给对象的属性初始化值呢? 这里介绍构造方法: 1.构 ...
- python 面向对象(五)约束 异常处理 MD5 日志处理
###############################总结###################### 1.异常处理 raise:抛出异常 try: 可能出现错误代码 execpt 异常类 a ...
- python 面向对象五 获取对象信息 type isinstance getattr setattr hasattr
一.type()函数 判断基本数据类型可以直接写int,str等: >>> class Animal(object): ... pass ... >>> type( ...
- 深入java面向对象五:Java的内存管理
一. Java对象的引用种类 Java内存管理包括内存分配和内存回收, 这个动作都是由JVM自动完成,所以过多的内存分配增加了内存的消耗,且垃圾回收线程的不断运行会给后台增加压力,降低系统的性能. 1 ...
- 如何理解java是一个面向对象的语言?(转自Hollis的直面java)
要想理解这个问题?需要考虑很多 1.什么是面向对象 把问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象.通过不同对象之间的调用,组合解决问题,也就是说,在面向对象的编程中,要把属性,行为等封 ...
- 面向对象之七大基本原则(javaScript)
1. 前言 2. 单一职责 3. 开闭原则 4. 里氏替换 5. 依赖倒置 6. 接口隔离 7. 迪米特法则 8. 组合聚合复用原则 9. 总结 1. 前言 面向对象编程有自己的特性与原则,如果对于面 ...
- 面向对象的7个设计原则->开车理解->贴近生活
设计模式在我们的开发中是不可或缺的一部分,很多人会说,我没用那些设计模式啊,我也开发的挺好的,其实不然,我们在开发中都用到了这些设计模式,只不过我们并没有在意这些,今天我就用开车的方法来解释一下我们的 ...
- [python实现设计模式]-3.简单工厂模式-触宝开放平台
预备知识: 开放封闭原则(Open-Closed Principle OCP) Software entities(classes,modules,functions etc) should open ...
随机推荐
- background-attachment 制造视差滚动效果案例
简介 background-attachment 属性设置背景图像是否固定或者随着页面的其余部分滚动.可能的值有三个: scroll 默认值.背景图像会随着页面其余部分的滚动而移动. fixed 当页 ...
- 什么是容器,什么是Docker?
此文转载自http://www.cnblogs.com/CloudMan6/p/6751516.html行文时有所改动 什么是容器?什么是Docker? 容器是一种轻量级.可移植.自包含的软件打包技术 ...
- Kaggle 题目 nu-cs6220-assignment-1
Kaggle题目 nu-cs6220-assignment-1 题目地址如下: https://www.kaggle.com/c/nu-cs6220-assignment-1/overview 这是个 ...
- vue中计算属性中的set和get
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <body& ...
- webpack的require.context()实现路由“去中心化”管理
最近在开发一个大型vue单页面应用的时候,项目最初是将所有的路由写在一个router.js的文件里. const router = new Router({ mode: "history&q ...
- 一些http知识
一些http知识 前置知识 首先放一张非常经典的计算机网络 关于五层结构 「物理层」「数据链路层」「网络层」「运输层」「应用层」我们依次来讲 我们拿wireshark 抓个http包看一下就能明白各层 ...
- Java与C语言的区别——含面向对象介绍
很多初学编程的小伙伴或者想要学习编程的小白弄不清C语言和Java的区别.本文就针对萌新们尽量用通俗的语言来介绍一下我所理解的编程语言界的两大巨头. 为什么说是两巨头,介绍之前我们先看一下某度搜索出来的 ...
- POJ1270 toposort+DFS+回溯
题目链接:http://poj.org/problem?id=1270 这道题其实就是求所有满足条件的topo序,我们考虑到给定的字符是确定的,也就是他们的长度都是一样的,所以为了得到所有的情况,我们 ...
- 使用SparkSQL编写wordCount的词频统计
# 使用SparkSQL编写wordCount的词频统计 ## word.txt```hello hello scala sparkjava sql html java hellojack jack ...
- Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果
前言: 使用Layui-admin做后台管理框架有很长的一段时间了,但是一直没有对框架内iframe菜单栏切换跳转做深入的了解.今天有一个这样的需求就是通过获取超链接中传递过来的跳转地址和对应的tab ...