05 php基础 02
php类的继承
继承就是子类继承父类的特征和行为,使得子类对象拥有父类的子类的属性和方法。而子类并不单纯的是对父类的复制,子类可以重写父类的方法或属性,也可以新添加属性。
类的访问控制
php对属性或方法的访问控制,是通过在前面添加关键字来控制的
protected 受保护的 受保护的类成员可以被其自身以及其子类和父类访问。
public 公有的 公有的类可以在任何地方被访问
private 私有的 私有的类成员只能在背其定义的所在的类中访问。
接口
接口可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。接口里所有的方法都是空的。
接口中定义的所有方法都必须是公有的,这是接口的特性。
接口不能定义变量,但能定义常量。
抽象类
抽象类和接口有一些相似,但不同之处在于抽象类可以定义确定的方法。
任何一个类,如果它里边至少有一个方法被声明为抽象的,那么这个类就必须声明为抽象类。
抽象类不能被实列化。
超级全局变量
$GLOBALS 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
$_SERVER 一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_REQUEST 用于收集HTML表单提交的数据。它可以获取 cookie get post
$_POST 广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
$_GET 广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。
$_FILES
$_ENV
$_COOKIE
$_SESSION
include 文件包含
可以使用include(或require)语句获取指定文件中存在的所有文本/代码/标记。使用include语句就好像把所包含的代码文件中的所有内容完全copy到当前文件了一样。
include 与 require语句
include 与 require 除了在错误处理方面之外其他的所有地方都是相同的。
require语句会生成致命错误并停止脚本
include语句只会生成警告并继续脚本运行。
一般而言网站采用的include语句用的比较多,也没有哪个网站说因为导入不了文件就停止服务了的。
文件处理
fopen()打开文件
fread() 读取打开的文件
fgets()单行读取
feof() 检查是否已经到达文件末尾
fclose()文件句柄关闭
rename() 文件重命名
copy() 文件复制
unlink() 文件删除
file_exists() 判断文件是否存在
is_file() 判断是否为文件
php目录操作
目录操作
新建目录:mkdir(路径,权限,递归创建)
删除目录:rmdir()
移动(改名):rename()
获取目录内容:
//打开目录
目录句柄 = opendir()
//读取目录
文件名 = readdir(目录句柄)
依次读取文件名,同时向下移动文件句柄指针,读取不到则返回false
//关闭目录
closedir()
命名空间
之前学C的时候一直没理解的命名空间到这里算是理解了
命名空间主要是用于解决一个命名冲突问题,其次就是简化标识符名称。
命名空间 namespace 是指人为的将内存进行分割,让不同内存区域的同名结构共存,从而解决在大型项目中可能出现的重名结构的问题。
命名空间的访问
非限定名称的访问:直接访问空间元素的名字(只能够访问自己命名空间的元素)
限定名称的访问:使用当前子空间的名字+\+元素名字
完全限定名称访问:全局空间的名称+元素名字
命名空间的引用
use关键字
1. 引入类:use 空间名\类名
2. 引入函数:use function 空间名\函数名
3. 引入常量:use const 空间名\常量名
2.当引入元素时重名,通过 as 来起别名
use 空间名\类名 as 别名
3.引入多个元素
use 空间名\{
类名,
function 函数名,
const 常量
}
4. 引入空间
use 空间名
正则表达式
正则表达式是用于描述字符排列和匹配模式的一种语法规则,主要是用于字符串的模式的分割、匹配、查找以及替换操作。
正则匹配模式使用分隔符与元字符组成,经常使用的分隔符是 /、#、~
元字符是用于构造规则表达式的具有特殊含义的字符。如果要在正则表达式中包含元字符本身,必须在其前面加上\进行转义
元字符 说明
* 0次、1次或多次匹配其前的原子
+ 1次或多次匹配其前的原子
? 0次或1次匹配其前的原子
| 匹配两个或多个选择
^ 匹配字符串串首的原子
$ 匹配字符串串尾的原子
[] 匹配方括号中的任一原子
[^] 匹配除方括号中的原子外的任何字符
{m} 表示其前原子恰好出现m次
{m,n} 表示其前原子至少出现m次,至少出现n次(n>m)
{m,} 表示其前原子出现不少于m次
() 整体表示一个原子
. 匹配除换行之外的任何一个字符
边界限制
我们使用"^"来确定匹配字符的开头,"$"来确定匹配字符的结束
如果不加边界限制字符,我们可能匹配到一些意料之外的结果
特殊字符
所谓特殊字符,就是一些有特殊含义的字符,如上面说的 * ,*简单来说就是表示任意字符串的意思,如果要查找文件名中含有*的文件,则需要对*进行转义
x|y 匹配 x 或 y。例如,’z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。
[xyz] 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p'。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,’[^a-z]’ 可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b’ 可以匹配”never” 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。
\B 匹配非单词边界。’er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。
\cx 匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W 匹配任何非单词字符包括下划线。等价于 ‘[^A-Za-z0-9_]’。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,’\x41′ 匹配 “A”。’\x041′ 则等价于 ‘\x04′ & “1″。正则表达式中可以使用 ASCII 编码。.
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,’(.)\1′ 匹配两个连续的相同字符。
\n 标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm 标 识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)。
php与mysql
php对mysql的操作主要是数据库的连接和关闭,以及在php中生成sql语句发送到mysql中进行执行。

浙公网安备 33010602011771号