博客列表 >8月15日学习笔记

8月15日学习笔记

Brain
Brain原创
2020年08月16日 21:47:15795浏览

php学习

1、网络请求响应流程

  • 浏览器—发起html请求—>服务器
  • 浏览器<—响应html请求—服务器
  • 浏览器—发起php请求—>服务器—转发—>PHP解释器—操作—>数据库
  • 浏览器<—响应html请求—服务器<—返回—php解释器<—返回结果—数据库

2、环境

  • wamp : windows+apache+mysql+php
  • phpstudy
  • 根据系统选择相应软件安装包

3、php基础

  • 以“<?php ?>”包裹的代码段,纯PHP文档尾部标签可以不写,和Html混写时,不能省
  • php代码可以定在Html文档的任何位置
  • php变量必须先声明再使用
  • php变更声明后,值为NULL
  • 将变量赋值为NULL,即可销毁变量

4、php函数

  • echo 输出变量,无返回值
  • var_dump() 打印变量类型、长度和值
  • unset() 销毁变量,无返回值
  • isset() 检测变量是否存在,返回布尔值
  • gettype()查询变量类型
  • tostring()转换成字符串
  • var_export()返回变量的字符串表示,带‘’表示,多用于sql语句定义
  • error_reporting(E_ALL)打开所有报错的开关
  • empty()检测变量是否为空,和NULL不一样

5、php程序的组成

  • 起始标签 <?php ?>
  • 注释 //*//
  • 代码段 function func(){}
  • 语句 *;

6、代码段

  • 函数
    |—内置函数
    |—自定义函数

7、变量

  • 变量是临时存储数量的容器,实现数据复用的手段
  • 内置变量:系统定义过的变量
  • 自定义变量
    |—用户设置的变更,命名不可用内置变量名
    |—变量名区分大小写,函数不区分大小写
    |—变更名$开始,跟字母或下划线开始的字母、下划线和数字的组合
    |—中文可以做变更名,但不建议用
    |—可变变量,变量值作为另一变量的变量名

8、数据类型

  • 基本类型:单值,一个变更对应一个值,标量
    |—字符串
    |—数值
    |—布尔类型
  • 复合类型:由基本类型或复合类型组成,一个变更对应一组数据
    |—数组 $arr=[‘123’,’abc’,’汉字’,[‘arr’,’数据’]]
    |—对象 $obj= new stdClass; $obj->name=’jk’,$obj->age=’18’
  • 特殊类型
    |—NULL,用is_null()函数检测
    |—资源类型,用gettype()检测,返回’resource’

9、变量类型转换

  • 自动转换:根据运算需求自动转换成对应的变更类型
    |—算术运行符会将运算符前后的变更自动转换成整型,字符串检测开始的数字
    |—连接运行符‘.’会将前后的变更自动转换成字符串,然后连接
  • 强制转换:只是临时转换,原值不变
    |—(int)$str:强制将字符串转换成整型
    |—函数转换intval($str),默认转换为十进制,增加参数intval($str,16)换十六进制转换
    |—函数转换strval($var),转换成字符串
  • 永久转换:
    |—settype($str,’integer’),永久转换成整型

10、作用域

  • 作用域是变更的生效范围,是查找变量的工具
  • 全局作用域:函数作用域之外的空间
  • 函数作用域:函数内部定义的变量,作用域在函数内
  • 作用域变更:在函数内部声明的变量前加global,则变为全局变量,可以函数内部使用
  • 超全局变量:不受作用域范围限制,一般全大写,如$GLOBALS
    |—$GLOBALS所有全局变量
    |—$GLOBALS[‘username’],访问用户定义的全局变更

11、常量:不受作用域范围限制,一般全大写,不带$,声明时要赋值,不能更新,不能销毁’unset()’

  • 常量的声明
    |—const SITENAME=”jk1536.com”,用关键字声明一个常量
    |—define(‘SITNAME’,’jk1536.com’),用函数声明一个常量
    |—在类中,只能用关键字const声明常量
    • 常量的获取
      |—get_defined_constants(),查看系统常量
      |—get_defined_constants(true),分级查看系统常量
      |—get_defined_constants(true)[‘user’],查看用户设置的常量’user’
      |—用函数获取常量 constant(‘APP_PATH’)
      |—直接打印常量 echo APP_PATH;
      |—常名可以变量化,即用一个变量存储常量名,但此时只能用constant()函数获取
  • 预定义常量
    |—echo ‘PHP版本号:’.’PHP_VERSION’.’<br>‘;
    |—echo ‘当前操作系统’.’PHP_OS_FAMILY’.’<br>‘;
    |—echo ‘最大整数’.’PHP_INT_MAX’.’<br>‘;
    |—echo ‘最大浮点数’.’PHP_FLOAT_MAX’.’<br>‘;
    |—echo ‘目录分隔符’.’DIRECTORY_SEPARATOR’.’<br>‘;
    • 魔术常量,值是变化的
      |—echo ‘当前文件’.’FILE‘.’<br>‘;
      |—echo ‘当前目录’.’DIR‘.’<br>‘;
      |—echo ‘当前行号’.’LINE‘.’<br>‘;

12、命名空间

  • 用namespace ns {}声明,不加空间名的就是根命名空间namespace{}
  • 只要声明了命名空间,所有代码就必须写在命名空间内
  • 跨空间调用,就要加上空间路径 \ns**

13、变量过滤器

  • 单个变量过滤用 filter_var()
    |—filter_var($var,FILTER_VALIDATE_INT),$var为整型时,返回其值,否则返回false
    |—filter_var($var,FILTER_VALIDATE_INT,$options),$options=[‘options’=>[‘min_range’=>18,’max_range’=>60]]
    |—FILTER_VALIDATE_EMAIL
  • 多个变量过滤用 filter_var_array()
    |—filter_var_array([$a,$b],FILTER_VALIDATE_INT)
  • 外部变量过滤用filter_input()
    |—外部变量的来源:表单、cookies、服务器变量、web服务数据、数据库查询结果
    |—用于验证GET、POST、PUT等传过来的值的过滤
    |—filter_input(‘输入类型get/post’,字符串表示的变更名,过滤器,选项参数)
    |—echo ‘id=’.$GET[‘id’];
    |—filter_input(INPUT_GET,’id’,FILTER_VALIDATE_INT,$options);

    • 同时过滤多个外部变量
      |—FILTER_SANITIZE_STRING,过滤掉非法字符
      $args=[
      1. 'username'=>FILTER_SANITIZE_STRING,
      2. 'email'=>FILTER_VALIDATE_EMAIL,
      3. 'age'=>['filter'=>FILTER_VALIDATE_INT,'options'=>['min_range'=>18,'max_range'=>60]],
      4. 'blog'=>FILTER_VALIDATE_URL,
      ];
      filter_input_array(INPUT_GET,$args)
  • 常用的过滤器函数

序号 函数 描述
1 filter_list() 返回所支持的过滤器列表
2 filter_id() 返回与某个特定名称的过滤器相关联的id
3 filter_var() 过滤单个变量
4 filter_var_array() 过滤多个变量
5 filter_has_var() 检测是否存在指定类型的变量
6 filter_input() 过滤单个外部变量
7 filter_input_array() 过滤多个外部变量
  • 外部变量类型:’INPUT_GET’,’INPUT_POST’,’INPUT_COOKIE’,’INPUT_SESSION’
  • 过滤器分为验证过滤器和清理过滤器
    |—验证过滤器

    |序号|过滤器函数|描述|
    |——|————-|—-|
    |1|FILTER_VALIDATE_INT|验证整数|
    |2|FILTER_VALIDATE_FLOAT|验证浮点数|
    |3|FILTER_VALIDATE_BOOLEAN|验证布尔值|
    |4|FILTER_VALIDATE_EMAIL|验证邮箱|
    |5|FILTER_VALIDATE_URL|验证url地址|
    |6|FILTER_VALIDATE_IP|验证IP地址|
    |7|FILTER_VALIDATE_REGEXP|正则验证|

    |—FILTER_VALIDATE_BOOLEAN布尔选项的返回值类型
    |—返回’true’的情况:’1’,’true’,’on’,’yes’….
    |—返回’false’的情况:’0’,’false’,’off’,’no’
    |—返回’null’的情况:除过以上情况

    |—清理过滤器:去掉非法字符,仅保留指定内容

    |序号|过滤器函数|描述|
    |——|————-|—-|
    |1|FILTER_UNSAFE_RAM|保持原始数据|
    |2|FILTER_CALLBACK|自定义函数过滤数据|
    |3|FILTER_SANITIZE_STRING|去掉标签以及特殊字符:’strip_tags()|
    |4|FILTER_SANITIZE_ENCODED|URL-encode字符串,去除或编码特殊字符|
    |5|FILTER_SANITIZE_SPECIAL_CHARS|HTML转义字符|
    |6|FILTER_SANITIZE_STRIPPED|string过滤器别名|
    |7|FILTER_SANITIZE_EMAIL|仅保留合法的email地址|
    |8|FILTER_SANITIZE_URL|仅保留合法的url地址|

    • 选项与标志
      |—可以对过滤器设置选项和标志,对数据进行更加精准的过滤处理
      |—选项 : ‘options’=>[…]
      |—标志 : ‘flags’=>[…]
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议