首页 PHP学习教程

PHP自学day03笔记

From: https://betheme.net/news/txtlist_i83513v.html

PHP自学day03笔记

作用域:变量(常量)可以访问的区域。
1、变量可以在普通代码中定义。
2、变量也可以在函数内部定义。

在PHP中作用域分三种:

全局变量:用户定义的普通变量。
所属的是全局空间,理论上函数内部空间不可用。
脚本周期,直到最后一行代码执行完。

局部变量:在函数内部的变量。
所属当前函数空间。
函数周期:函数结束后释放。

超全局变量:系统定义的变量(预定义变量:$_SERVER等)。
所属超全局空间,可以访问函数内外。

在函数里访问全局变量:
方法一:可以用$GLOBALS,但是这个方法通常不用。
方法二:通过参数传值引用传值也可以。
方法三:使用global关键字,可以使得全局访问局部变量,局部也可以访问全局变量。
如果使用的global关键字,那么全局变量和局部变量同名了,那就默认两者是同一个。
在函数内部定义一个global的变量时,函数外部系统会自动定义一个同名变量。

Global语法:
Global 变量名; //此时不能赋值。(变量名必须以$开头)

不过以上三种方法不常用。

静态变量:
static,在函数内部定义的变量,使用static关键字修饰,用来实现跨函数的共享数据的变量。
函数运行结束所有的局部变量都会清空,如果重新运行一下函数,所有的局部变量都会重新初始化,但是静态变量不会初始化。

基本语法:
Function 函数名(){
函数体
static $xx=值; //通常会在定义的时候直接赋值
}

可变函数:当前有一个变量所保存的值,恰好是一个函数的名字,
那么就可以使用变量+()来充当函数名使用。
例子:
function test(){
echo ‘123’;
}
$a=‘test’;
$s(); //相当于调用test函数,输出123.

匿名函数:没有名字的函数
基本语法;
变量名=function(){
函数体;
};

伪类型:假类型。在三大类八小类之外。

mixd:混合的,可以是多种PHP中的数据类型。
number:数值,可以是任意数值类型。

常用的系统函数:
输出的函数:
print();
print_r();

时间函数:
date(‘Y 年 m月 d 日 H:i:s’,时间戳);
time();获取当前时间的时间戳;
microtime();获取微秒级别的时间;
shorttime();按照规定格式的字符串转换成时间戳。

数学函数:
max(); //得到最大数
min(); //得到最小数
rand(); //得到随机数,指定区间的随机整数。
mt_rand(); //与rand一样
cell(); //向上取整,天花板
floor();//向下取整,地板
pow(); //求指定数值的指定次方。
abs(); //求绝对值
sqrt(); //求平方根

相关函数:
function_exits(); 判断指定的函数名字是否存在在内存中。
(帮助用户不去使用一个不存在的函数)
func_get_arg();在自定义函数中去获取指定数值对应的参数。
func_get_args();在自定义函数中获取所有的参数(数组)。
func_num_args();获取当前自定义的函数参数数量

错误处理:
错误处理指的是系统或者用户在对某些代码进行执行的时候,发现错误,以错误处理的方式告知程序员。

错误分类;
语法错误:用户书写的代码不符合PHP语法规范,语法错误会导致代码在编译的过程中不通过,所以代码不会运行。
运行错误:代码编译通过,但是代码在执行的过程中会出现一些不满足条件的错误。
逻辑错误:程序员在写代码的时候不够规范,出现了一些逻辑性的错误,导致代码正常执行,但是得不到想要的结果。

错误代号:
所有看到的错误代码在PHP中都被定义成了系统常量(可以直接使用)
E_xxxx
所有以E开头的错误常量都是由一个字节存储,然后每一个错误占据一个对应位。
如果想要进行一些错误的控制,可以使用位运算进行操作。

错误触发:
程序运行时触发:系统自动根据错误发生后,对比应对的错误,输给用户,主要争对代码的语法错误和运行时的错误。
人为触发:知道某些逻辑可能会出错,从而使用相应的判断代码来触发响应的错误信息。
trigger_error();

header(’’);处理脚本让浏览器按照指定字符集解析的办法。

错误显示设置:哪些错误该显示,该如何显示。
在PHP中,有两种方式来设置当前脚本的错误显示。
1、PHP的配置文件:全局配置:php.ini文件。
display_errors:是否显示错误。
Error_reporting:显示什么级别的错误。
2、可以在运行的PHP脚本中去设置:通常在开发中都会在代码中去控制和配置。
Error_reporting();设置对应的错误显示级别。
ini_set(‘配置文件的配置项’,E_ALL);

错误日志:
在实际的生产环境中,不会直接让错误赤裸裸展示给用户,不友好不安全。
所以在实际中,一般把错误保存到日志文件中,需要在配置文件或者代码中(ini_set)设置对应的配置项。

字符串类型:
1、单引号包裹
2、双引号包裹
两种引号方式比较适合不超过一行比较短没有结构要求的字符串。
如果有结构要求,或者内容超过一行,可以使用一下两种定义结构。
3、nowdoc字符串 :没有单引号的单引号字符串。
格式:
string=<<<EODEOD;4heredocstring=<<<'EOD' 字符串内容 EOD; 4、heredoc字符串:没有双引号的双引号字符串。 格式:string=<<<′EOD′字符串内容EOD;4、heredoc字符串:没有双引号的双引号字符串。格式:string=<<<EOD
字符串内容
EOD;

字符串转义:
转义的含义:在计算机通用协议中,有一些特殊的定义方式的字母,系统会特殊处理:通常这种方式都是用/+字母的方式。
\r\n 回车换行

PHP常用转义符号:
':在单引号字符串中显示单引号。
":在双引号字符串中显示双引号。
\r:回车
\n:新建一行
\t:类似tab键,输出4个空格。
$:在PHP中作为变量符号,需要特定识别。

单引号和双引号的区别:
1、单引号可以识别’ ,双引号中不能识别’;
2、双引号中可以识别$符号,所以双引号中可以识别变量。

双引号变量的识别规则:
变量本身系统能够和后面内容识别,应该保证变量的独立性,不要让系统难以区分,可以用{}将变量括起来。

结构化自定义字符串对应的边界符规则:
1、结构化定义字符串对应的边界符有条件:
后面不能跟任何内容,包括空格也不能跟。
下边界必须定格,最左边。
下边界后只能跟封分号不能跟其他内容。

2、结构定义字符串的内部(边界符之间)的所有内容都是字符串本身,甚至包括注释。

字符串长度问题:
strlen();//用来返回字符串的长度,字节为单位。
中文在utf-8中占三个字节。
2020/8/3看到这里,今天继续加油