超全的PHP进阶知识点 | 您所在的位置:网站首页 › 数组全排列c语言怎么表示 › 超全的PHP进阶知识点 |
目录 前文基础知识 static关键字 预定义常量 引号区别 字符串函数 数组进阶 函数进阶 变量作用域 类进阶 PHP超级全局变量 文件处理 文件属性获取 目录操作 正则表达式 phpstorm报错解决 前文基础知识超详细的PHP入门知识点讲解_coleak的博客-CSDN博客_php coleak的PHP知识专栏 static关键字当一个函数完成时,它的所有变量通常都会被删除。 然而,有时候希望某个局部变量不要被删除。请在第一次声明变量时使用 static 关键字 预定义常量PHP预定义了许多常量,这些常量无需使用define()函数定义,可直接在程序中使用。下面列举了一些常用的PHP预定义常量。 DIRECTORY_SEPARATOR: 表示目录分隔符,UNIX或Linux操作系统环境时的值为“ / ”, Window操作系统环境时的值为 “ \ ” PHP_OS: PHP所在的操作系统的类型 E:\phpproject\mypro1\index.php 3 7.4.22 WINNT \ 引号区别trim() 函数移除字符串两侧的空白字符或其他预定义字符。 cole ak _xiao ak 一共有 18字符 cole ak _xiao ak 6 ak _xia cole yk _xiyo yk 数组进阶数组第 0 个元素的值是:1 数组第 1 个元素的值是:2 数组第 2 个元素的值是:3 数组第 3 个元素的值是:4 数组第 4 个元素的值是:coleak 数组第 0 个元素的值是: 1 数组第 1 个元素的值是: 2 数组第 2 个元素的值是: 3 数组第 3 个元素的值是: 4 数组第 4 个元素的值是: coleak sort() - 对数组进行升序排列 rsort() - 对数组进行降序排列 asort() - 根据关联数组的值,对数组进行升序排列 ksort() - 根据关联数组的键,对数组进行升序排列 arsort() - 根据关联数组的值,对数组进行降序排列 krsort() - 根据关联数组的键,对数组进行降序排列 数组合并 key= 0 的值为 a key= 1 的值为 b key= 2 的值为 c key= a1 的值为 php key= a2 的值为 python key= a3 的值为 java Array ( [0] => a [1] => b [2] => c [3] => d [4] => e ) 下表为空 自动添加参数 array(2) { [0]=> string(1) "d" [1]=> string(1) "c" } Array ( [0] => d [1] => c [a4] => javasciprt )unset 销毁指定的元素 Array ( [0] => a [1] => b [3] => d [4] => e ) Array ( [0] => a [1] => b [3] => d ) Array ( [0] => aaa [1] => b [3] => d ) 函数进阶匿名函数 匿名函数就是没有名字的函数。 将一个匿名函数"赋值"给一个变量——此时该变量就代表该匿名函数了 回调函数 变量作用域PHP 有三种不同的变量作用域: local(局部) global(全局) static(静态) PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。 15 20 类进阶继承 PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承 接口 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。接口中定义的所有方法都必须是公有,这是接口的特性。要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。 常量 可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。 常量值 常量值 常量值 常量值 常量值 var1 var2 抽象类 子类方法可以包含父类抽象方法中不存在的可选参数 1. 接口 (1)对接口的使用是通过关键字implements (2)接口不能定义成员变量(包括类静态变量),能定义常量 (3)子类必须实现接口定义的所有方法 (4)接口只能定义不能实现该方法 (5)接口没有构造函数 (6)接口中的方法和实现它的类默认都是public类型的 2. 抽象类 (1)对抽象类的使用是通过关键字extends (2)不能被实例化,可以定义子类必须实现的方法 (3)子类必须定义父类中的所有抽象方法,这些方法的访问控制必须和父类中一样(或者更为宽松) (4)如一个类中有一个抽象方法,则该类必须定义为抽象类 (5)抽象类可以有构造函数 (6)抽象类中的方法可以使用private,protected,public来修饰。 (7)一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。Static 关键字 声明类属性或方法为 static(静态),就可以不实例化类而直接访问。 静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。 由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。 静态属性不可以由对象通过 -> 操作符来访问。 自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。 php中const与static的区别:1、const只能修饰类的属性,static可以修饰属性和方法;2、const一旦被定义不可更改,static修饰的变量是可以被更改的;3、const不需要变量符号,而static需要。 Final 如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。 PHP 不会在子类的构造方法中自动的调用父类的构造方法 PHP超级全局变量PHP超级全局变量列表: $GLOBALS 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。$_SERVER 一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组$_REQUEST 用于收集HTML表单提交的数据。$_POST 广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。$_GET 广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。Array [] $_FILES$_ENV$_COOKIE$_SESSION文件包含 include 和 require 语句是相同的,除了错误处理方面: require 会生成致命错误(E_COMPILE_ERROR)并停止脚本 include 只生成警告(E_WARNING),并且脚本会继续 语法 include 'filename';和require 'filename'; 文件处理文件字节数即输出 读取此文件并写到输出流(如读取成功则 readfile() 函数返回字节数) count=字节数+2*(行数-1) 文件打开/读取/关闭/写入 fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。 fopen 其他文件操作 php文件重命名:函数rename()。 php文件复制:函数copy(); php文件删除:函数unlink(); file_exists() 判断文件是否存在 is_file() 是否为文件。 文件属性获取新建目录:mkdir(路径,权限,递归创建) 删除目录:rmdir() 移动(改名):rename() 获取目录内容: //打开目录 目录句柄 = opendir() //读取目录 文件名 = readdir(目录句柄) 依次读取文件名,同时向下移动文件句柄指针,读取不到则返回false //关闭目录 closedir() 递归读取目录内容 经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~) 元字符是用于构造规则表达式的具有特殊含义的字符。如果要在正则表达式中包含元字符本身,必须在其前加上”\”进行转义 元字符 说明 * 0次、1次或多次匹配其前的原子 + 1次或多次匹配其前的原子 ? 0次或1次匹配其前的原子 | 匹配两个或多个选择 ^ 匹配字符串串首的原子 $ 匹配字符串串尾的原子 [] 匹配方括号中的任一原子 [^] 匹配除方括号中的原子外的任何字符 {m} 表示其前原子恰好出现m次 {m,n} 表示其前原子至少出现m次,至多出现n次(n>m) {m,} 表示其前原子出现不少于m次 () 整体表示一个原子 . 匹配除换行之外的任何一个字符 phpstorm报错解决phpstorm运行时显示warning:Unable to load dynamic library 'mysqli' 库配置路径错误 发现错误提示的目录不是我的php的安装目录,它找库的地方是不对的。 打开php.ini ;extension_dir = "ext"注释打开修改为: extension_dir = “E:\apa\php-7.4.22\ext” 注:E:\apa\php-7.4.22\ext为我的PHP各种库的安装目录。 |
CopyRight 2018-2019 实验室设备网 版权所有 |