跟随我在oracle学习php(49)

一些有关类和对象的系统函数和运算符

class_exists(), :判断某个类是否存在(定义过)

interface_exists(), :判断接口是否存在

get_class():获取某个对象的“所属类名”

get_parent_class(), :获取某个对象的“所属父类的类名”

get_class_methods(), :获取一个类的所有方法,返回一个索引数组,就是这些方法的名字。

get_class_vars(), :获取一个类的所有属性,返回一个数组,下标为属性名,值为属性值。

get_declared_classes():获得所有声明过的类(含系统中的类)

is_object():判断是否对象

get_object_vars():获得对象的所有属性,返回一个数组,下标为属性名,值为属性值

运算符:

new

instanceof: 判断一个对象是否是某个类的“实例”

 

注意一个现象:

 

两个特定语法场景的辨析:

对象向下传递特性;

当一个对象($o1) 调用一个实例方法,然后,在该实例方法(f1)中又去“静态”调用另一个类的方法(f2),则在方法f2中,会自动获得在方法f1中的那个$this对象。

 

对比:

 

可见f2方法直接调用会产生严重错误(因为找不到$this)

static后期静态绑定特性:

 

可见static3个不同含义的语法:

函数中的静态变量:

function  f1(){

static $v1 = 1;

}

类中的静态成员:

class A{

static  $v1 = 1;

static  function f1(){}

}

方法中的动态指代“当前类”:

class A{

function f1(){

static::f2();//static此时指代调用f1这个方法的类(或对象的类)

self::f2(); //self这里永远指代当前A这个类。

}

}

 

 

面向对象3大思想特征介绍:

封装:

就是把数据“封闭”起来,尽量不给别人看到。

面向对象的基本语法“类的定义”形式,可以认为是最基本封装——封装了很多数据到某个类(对象)。

但:

更严格(更常说)的封装,是尽量将属性做出“私有的”——并通过共有的方法来向外提供对该属性的“可控性操作”:

 

 

继承:

 

多态:

多态:看起来用的是相同的东西(方法),但会得到不同的结果。

 

通常是指:一个对象可以使用相同的方法(动作)但得到不同的结果:

(这里是其他常见面向对象语法示例:)

class A{

function  f1($x ){....做事情1;。。。。}

function  f1($x, $y ){....做事情2;。。。。}

function  f1($x, $y, $z ){....做事情3;。。。。}

}

也指:不同的对象使用相同的方法,但得到不同的结果:

 

 

目录操作

 

创建目录

Mkdir(目录地址,权限,是否递归创建=false);

 

 

删除目录

Rmdir(目录地址)

 

仅仅可以删除空目录。(不支持递归删除)

 

移动改名)

Rename(旧地址,新地址)

 

 

该函数也支持操作文件

 

 

获取目录内容(文件)

打开目录 目录句柄 = opendir(目录地址)

目录句柄:php程序与目录间的一个联系

 

依次读取目录内文件 文件名 = readdir(目录句柄);

依次读取一个文件(子目录),同时向下移动句柄指针。如果读取不到返回false

目录内存在两个逻辑子目录 ., .. 分别表示当前目录和上级目录!

 

通过配合 循环结构 完成目录内所有文件的读取:

 

处理 0 文件名

 

 

关闭目录 closedir()

 

 

 

递归获取目录内容

打开某个目录

依次读取目录内文件

如果某个文件为目录

递归对该目录采用打开,读取,判断这个递归草

 

递归点 如果子文件为目录,则递归

出口 如果目录中不存在子目录,则不需要继续递归!

 

 

 

树状展示

使用特定数量的缩进达到树状目的!

核心问题,计算需要缩进的数量!

缩进级别,与递归调用深度保持一致。每当执行递归操作找到的文件的缩进级别+1;

语法实现:

增加一个参数,表示当前函数调用的深度级别,每当递归+1;

 

 

嵌套

 

使用数组的嵌套,表示层级关系!

例如

 

 

实现

 

转载于:https://www.cnblogs.com/RighTgraM/p/10925080.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值