文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

超全的PHP进阶知识点

2023-09-02 07:45

关注

目录

前文基础知识

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 

数组进阶

 $value) {    echo '数组第 '.$key.' 个元素的值是:'.$value.PHP_EOL;}$num=0;foreach ($b as $value){    echo "数组第 $num 个元素的值是: $value ".PHP_EOL;    $num++;}?>

数组第 0 个元素的值是:1
数组第 1 个元素的值是:2
数组第 2 个元素的值是:3
数组第 3 个元素的值是:4
数组第 4 个元素的值是:coleak
数组第 0 个元素的值是: 1 
数组第 1 个元素的值是: 2 
数组第 2 个元素的值是: 3 
数组第 3 个元素的值是: 4 
数组第 4 个元素的值是: coleak

"35","Ben"=>"37","Joe"=>"43");//关联数组//其中包含多个键值对echo "Peter is " . $age['Peter'] . " years old.".PHP_EOL;foreach($age as $x=>$value)//关联数组的遍历方法{    echo "Key=" . $x . ", Value=" . $value.PHP_EOL;}?>

sort() - 对数组进行升序排列

rsort() - 对数组进行降序排列

asort() - 根据关联数组的值,对数组进行升序排列

ksort() - 根据关联数组的键,对数组进行升序排列

arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列

数组合并

'php','a2'=>'python','a3'=>'java');$array3 = array_merge($array1,$array2);foreach ($array3 as $item=>$value){    echo "key= $item 的值为 $value".PHP_EOL;}array_push($array1,'d','e');print_r($array1);?>

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 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。

 fun1();echo PHP_EOL;$obj -> fun2();?>

常量

可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。

var1.PHP_EOL;        echo $this->var2;    }}echo MyClass::constant . PHP_EOL;$classname = "MyClass";echo $classname::constant . PHP_EOL; // 自 5.3.0 起$class = new MyClass();echo $class::constant . PHP_EOL; // 自 PHP 5.3.0 起$class->showConstant();$class->showvars();?>

常量值
常量值
常量值
常量值
常量值
var1
var2

抽象类

子类方法可以包含父类抽象方法中不存在的可选参数

prefixName("man"), "\n";echo $class->prefixName("woman"), "\n";?>
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需要。 

staticValue() . PHP_EOL;?>

Final

如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。

PHP 不会在子类的构造方法中自动的调用父类的构造方法

PHP超级全局变量

PHP超级全局变量列表:

  1. $GLOBALS  一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
  2. $_SERVER  一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
  3. $_REQUEST  用于收集HTML表单提交的数据。
  4. $_POST  广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
  5. $_GET  广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。

Array []

  1. $_FILES
  2. $_ENV
  3. $_COOKIE
  4. $_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各种库的安装目录。

来源地址:https://blog.csdn.net/qq_63701832/article/details/128887244

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯