最近发现有的PHP基础了解得不够清晰,因此来重新回顾下PHP基础内容,大部分是从手册中记录,持续更新
1.PHP全局变量和局部变量
全局变量可以在脚本中的任何位置被访问,但是需要加上global ,也可用$GLOBALS超全局变量访问
<?php
$x = 10;
function test(){
global $x;
echo $x;
echo $GLOBALS['x'];
}
?>2.php 虽然是弱类型语言但是也支持8种数据类型
四种标量类型
boolean(布尔型)
integer(整型) // 如果给定的数超过integer范围将被解析为float类型
float (浮点型,同double)
string(字符串)
两种复合类型
array (数组)
object (对象)
两种特殊类型
resource (资源)
NULL (NULL)
3.PHP超全局变量
$GLOBALS
$_SERVER //包含了如头部信息header,path,(脚本)script位置等数组信息,主要为web服务器创建,和$HTTP_SERVER_VARS包含相同信息
$_GET // 通过url参数传递给当前脚本的变量的数组,可以收集表单数据
$_POST // 通过http post方法传递给当前脚本变量的数组,主要用来收集表单数据
$_REQUEST // http request变量 默认包含$_GET,$_POST,$_COOKIE的数组
$_FILES
$_COOKIE // 通过http cookie方式传递的变量数组
$_SESSION
$_ENV
//下面是一些预定义变量
$php_errormsg 前一个错误信息
$HTTP_RAW_POST_DATA 原生POST数据
$http_response_header http响应头 当使用http包装器时该变量会被http响应有信息填充,类似于get_headers(url)函数,该函数不是超全局函数
$argc 传递给脚本的参数数目 //脚本文件名总是作为参数传递给当前脚本
$argv 传递给脚本的参数数组 // 以上两个变量仅在register_argc_argv 打开时可用4.static变量作用域
当一个函数执行完毕后,他的所有变量都将会被删除。若希望某个局部变量不要被删除可以使用static关键字
原理: 静态变量属于静态存储方式 其存储空间为内存中的静态数据区(在静态存储区分配存储单元),该区域中数据在整个程序
运行期间一直占用这些存储空间,也可认为其地址不变,直到整个程序运行结束.经常用来实现单例模式
不能再作用域之外使用
5.echo 和print区别
echo 可以输出一个或多个字符串,输出速度比print快
print 只允许输出一个字符串,且返回值总为1
两者都是一个语言结构,使用的时候可以不加()6.php 数组排序函数
sort() 升序
rsort() 降序
asort() 根据关联数组的值排序 升序
ksort() 根据关联数组的值排序
arsort()
krsort()7.魔术变量
八个魔术常量随着在代码的位置改变而改变
1. __LINE__ 文件中当前的行号
2. __FILE__ 当前文件的完整路径
3. __DIR__ 文件所在文件夹
4. __FUNCTION__ 当前函数名 (区分大小写)
5. __CLASS__ 类名(区分大小写)
6. __METHOD__ 类的方法名 (区分大小写)
7. __NAMESPACE__ 当前命名空间名称
8. __TRAIT__ 当前trait名称 ,复用代码的方法8. Cookie ,session
cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制,cookie是http标头的一部分,所以setcookie()必须是在
其他信息输入到浏览器之前调用,和header()限制类似
以明文的形式保存在客户计算机中
session 会话
由于http协议是无状态协议,所以服务器在记录用户状态时,就需要一种机制来识别用户的状态9. cookie和session区别
1. cookie保存客户端,session保存在服务器端
2. session默认保存在服务器的一个文件中(不是内存)
3. session的运行依赖于session_id ,而session_id 一般是存在cookie中,如果浏览器禁用cookie,这种情况session
也会失效,但是可以将session_id 以URL传参的形式发送
4. session可以放在文件,数据库,内存中
5. session用来保持会话的一致性,一般用来做用户验证
维护一个会话的核心就是客户端有一个唯一的会话标识,即session_id
客户端保存session_id 当用户请求页面时,会把session_id 发送给服务器,服务器根据session_id 来判断用户是否处于登录状态10. invtal (var,base) 获取变量的整数值