大纲目录
一、PHP数据类型
- Boolean 布尔类型
- Integer 整型
- Float 浮点型
- String 字符串
- Array 数组
- Object 对象
- Resource 资源类型
- NULL
二、 PHP 常用数组函数
- 重点看函数的‘参数’和‘返回值‘
- array() 创建数组 implode()数组转字符串, explode(‘,’,$str)使用一个字符串分割另一个字符串 返回array
- in_array() 判断元素是否在数组中(遍历查找 o(n)) array_key_exists(),key 是否存在索引查找o(1)
- count() 返回数组中元素的数目
- array_merge() 将多个数组合并成一个数组 , array_combine() 已第一个参数作为key重新组合一个索引数组
- array_diff() 比较两个或两个以上数组的差异
- array_intersect() 获取两个或两个数组以上的交集
- array_keys() 获取数组的 key 列表 array_column() 获取指定列的数据
- array_values() 获取数组的值列表
- array_unique() 删除数组中的重复值
- array_push()将一个或多个元素插入数组的末尾(入栈)
- array_pop() 弹出并返回 array 数组的最后一个单元(出栈)
- array_walk(),array_map(),array_filter() 使用用户自定义函数对数组中的每个元素做回调处理
- asort() 对数组进行排序并保持索引关系; arsort() 对数组进行逆向排序并保持索引关系
- sort()按值排序, rsort()按值降序排序, ksort() 按键排序 ; krsort() 按键逆向排序
array_multisort() - compact() 将变量整合成数组; extract() 将数组中的每个值以键的名分解成变量
- array_count_values() 函数用于统计数组中所有值出现的次数。返回一个数组,[原数组值=>次数]
三、PHP 常用字符串函数
- 重点看函数的‘参数’和‘返回值’
- trim(string
$str
[, string$character_mask
]) 移除字符串两侧的空白字符和其他字符;
ltrim()移除左侧 rtrim() 移除右侧 ,第二个参数是想移除的字符 - strlen() 获取字符串的长度 mb_strlen() 获取字符串长度(可指定字符编码,对中文字符串计算长度)
strlen(‘中国’) =》6
//安装mbstring 扩展
mb_strlen(‘中国’,‘utf8’) mb_strlen(‘中国’) =》2 - substr()返回字符串的一部分
- str_replace() 子字符串替换
- str_repeat () 重复一个字符串
- is_string() 检测变量是否是字符串 对应is_numberic() 检查是否是数值类型
- str_shuffle () 随机打乱一个字符串
- sprintf() 返回根据格式化字符串生成的字符串(通常用于获取分表后的数据表名)
- strstr() 查找字符串的首次出现的位置开始到结尾的字符串 stristr() 忽略大小写,同 strstr(),
- strpos() 查找字符串首次出现的位置 ,没有返回false
- explode(‘,’,$str)使用一个字符串分割另一个字符串 返回array
四、魔术常量(魔术变量)前后双下划线
概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位置而变化。
- LINE 获取文件中的当前行号。
- FILE 获取文件的完整路径和文件名。
- DIR 获取文件所在目录。
- FUNCTION 获取函数名称(PHP 4.3.0 新加)。
- CLASS 获取类的名称(PHP 4.3.0 新加)。
- METHOD 获取类的方法名(PHP 5.0.0 新加)。
- NAMESPACE 当前命名空间的名称(区分大小写)。
- TRAIT Trait 的名字(PHP 5.4.0 新加)。
五、超全局变量
- 超全局变量,又叫预定义变量,注意 变量前边只有一个下划线
- $GLOBALS :储存全局作用域中的变量
- $_SERVER :获取服务器相关信息
- $_REQUEST :获取POST和GET请求的参数
- $_POST : 获取表单的POST请求参数
- $_GET: 获取表单的GET请求参数
- $_FILES :获取上传文件的的变量
- $_ENV : 获取服务器端环境变量的数组
- $_COOKIE:获取浏览器的cookie
- $php_errormsg — 前一个错误信息
- $http_response_header — HTTP 响应头
- $argc — 传递给脚本的参数数目
- $argv — 传递给脚本的参数数组
六、PHP如何获取客户端/服务端IP,以及客户端的真实IP
- 客户端IP:$_SERVER[‘REMOTE_ADDR’]
- 客户端IP(代理透析): $_SERVER[‘HTTP_X_FORWARD_FOR’]
- 服务端IP:$_SERVER[‘SERVER_ADDR’]
七、值传递和引用传递
- 值传递:函数范围内部对参数值的任何修改都不会影响函数外的变量的值
- 引用传递:函数内对参数值的任何修改都会导致函数外部变量的值
- 优缺点:
- 值传递时,PHP必须复制出来一个新的变量和地址空间。 如果是比较大的字符串|变量或者对象来说,将会有很大的内存开销和代价;
- 引用传递时不需要开辟新的内存地址,不需要复制值,尤其对比较大的变量来说,能够有效提高程序性能
八、isset()和empty()的区别
- isset(),判断变量是否存在和定义并且非null,可以传多个参数,如果其中一个不存在则返回false
- empty(),判断变量是否为空为假,只可传一个变量,如果为空或者值等同于false时则返回true,否则返回false
- ''空字符串, 0 整数0, 0.0浮点数0, '0’字符串0, null, false, array()空数组, 未声明定义的变量 用empty()判断都会返回true