
2020-06-04_5ed8879298707.jpeg

图片描述
Boolean 误区
几种转换为 Boolean 时,其值为 FALSE 的情况 |
布尔值 FALSE 本身 |
整型值 0(零) |
浮点型值 0.0(零) |
空字符串,以及字符串 "0" |
不包括任何元素的数组 |
特殊类型 NULL(包括尚未赋值的变量) |
从空标记生成的 SimpleXML 对象 |
String 四种表达方式
|
说明 |
单引号 |
特殊字符和变量不会被解析 |
双引号 |
特殊字符和变量会被解析 |
Heredoc |
特殊字符和变量会被解析,标识符EOT
|
Nowdoc |
特殊字符和变量不会被解析,标识符'EOD'
|
类型转换
目标类型 |
说明 |
(int), (integer) |
转换为整形 integer |
(bool), (boolean) |
转换为布尔类型 boolean |
(float), (double), (real) |
转换为浮点型 float |
(string) |
转换为字符串 string |
(array) |
转换为数组 array |
(object) |
转换为对象 object |
(unset) |
转换为 NULL (PHP 5) |
预定义变量
变量名 |
说明 |
$GLOBALS |
引用全局作用域中可用的全部变量 |
$_SERVER |
服务器和执行环境信息 |
$_GET |
HTTP GET 变量 |
$_POST |
HTTP POST 变量 |
$_FILES |
HTTP 文件上传变量 |
$_REQUEST |
HTTP Request 变量 |
$_SESSION |
Session 变量 |
$_ENV |
环境变量 |
$_COOKIE |
HTTP Cookies |
$php_errormsg |
前一个错误信息 |
$HTTP_RAW_POST_DATA |
原生POST数据 |
$http_response_header |
HTTP 响应头 |
$argc |
传递给脚本的参数数目 |
$argv |
传递给脚本的参数数组 |
常量和变量的区别
|
常量和变量的区别 |
相同 |
命名规范都必须以字母或下划线开头,后面跟字母,数字或下划线 |
不同 |
1、常量前面没有美元符号 $ 2、常量不能通过赋值语句定义 3、常量可以在任何地方定义和访问 4、常量一旦定义就不能被重新定义或者取消定义 5、常量的值只能是标量 |
魔术常量
名称 |
说明 |
__LINE__ |
文件中的当前行号 |
__FILE__ |
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名 |
__DIR__ |
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录 |
__FUNCTION__ |
函数名称,返回该函数被定义时的名字 |
__CLASS__ |
类的名称,返回该类被定义时的名字 |
__TRAIT__ |
Trait 的名字 |
__METHOD__ |
类的方法名,返回该方法被定义时的名字(区分大小写) |
__NAMESPACE__ |
当前命名空间的名称(区分大小写) |
算术运算符
名称 |
说明 |
-<变量名> |
取反 |
+ |
加法 |
- |
减法 |
* |
乘法 |
/ |
除法 |
% |
取余 |
** |
乘方 |
赋值运算符
名称 |
说明 |
= |
赋值 |
<运算符>=,例 i+=1 |
组合赋值 |
位运算符
名称 |
说明 |
& |
And(按位与) |
I |
Or(按位或) |
^ |
Xor(按位异或) |
~ |
Not(按位取反) |
<< |
Shift left(左移) |
>> |
Shift right(右移) |
比较运算符
名称 |
说明 |
== |
值相等 |
=== |
类型和值都相等 |
!= |
值不相等 |
<> |
等同于 != |
!== |
值或类型不同 |
< |
小于 |
> |
大于 |
<= |
大于等于 |
>= |
小于等于 |
比较运算符误区 |
null 或 string 和 string 比较时,将 null 转换为 "",进行数字或词汇比较 |
bool 或 null 和其他类型比较时,转换为 bool,FALSE < TRUE |
string,resource 或 number 相互比较时,将 string 或 resource 转换为 number,按普通数字比较 |
array 之间比较时,具有较少成员的 array 较小 |
object 和其他类型比较时,object 总是更大 |
array 和其他类型比较时,array 总是更大,但是比 object 小 |
逻辑运算符
名称 |
说明 |
and |
与 |
&& |
与 |
or |
或 |
II |
或 |
xor |
异或 |
! |
非 |
数组运算符
名称 |
说明 |
+ |
数组相加 |
== |
判断数组键和值相同 |
=== |
判断数组键和值且顺序和类型相同 |
!= |
判断数组键和值不同 |
<> |
等同于 != |
!== |
判断数组键和值且顺序和类型不同 |
对象继承误区
对象继承误区 |
使用 final 修饰的方法不能被覆盖 |
使用 parent 可以调用父类方法或属性 |
使用 self 可以调用自身的方法属性 |
:: 可以调用静态方法,静态属性和常量 |
抽象类误区
抽象类误区 |
继承一个抽象类的时候,子类必须定义父类中的所有抽象方法 |
子类中方法的访问控制必须和父类中一样 |
子类中方法的调用方式必须匹配,即类型和所需参数数量必须一致 |
接口误区
接口误区 |
子类中必须实现接口中定义的所有方法 |
实现多个接口时,接口中的方法不能有重名 |