
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 可以调用自身的方法属性 |
| :: 可以调用静态方法,静态属性和常量 |
抽象类误区
| 抽象类误区 |
|---|
| 继承一个抽象类的时候,子类必须定义父类中的所有抽象方法 |
| 子类中方法的访问控制必须和父类中一样 |
| 子类中方法的调用方式必须匹配,即类型和所需参数数量必须一致 |
接口误区
| 接口误区 |
|---|
| 子类中必须实现接口中定义的所有方法 |
| 实现多个接口时,接口中的方法不能有重名 |