PHP基础知识回顾

139 阅读3分钟

最近发现有的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 可以输出一个或多个字符串,输出速度比printprint 只允许输出一个字符串,且返回值总为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) 获取变量的整数值