zoukankan      html  css  js  c++  java
  • PHP笔记

    PHP

    语法

    结束

    变量

    • 以$字符开始的

    输出

    • echo

      • 可以输出一个或多个字符串
    • print

      • 只能输出一个字符串,返回值是1
    • EOF

      • echo <<<EOF

    数据类型

    • 字符串

      • String

        • $str="teststr";
    • 整型

      • int

        • $a=12;
    • 浮点型

      • float

        • $b=1.3212;
    • 布尔型

      • boolean

        • $c=true;
    • 数组

      • array

        • $arr=array("a","b","c");
    • 对象

      • object

        • class oj{$obj; function set_obj($obj){this.obj=obj;}}
    • 空值

      • null

        • $x="adsf";$x=null;echo $x;

    类型比较

    • ==

      • 松散比较,只比较值
    • ===

      • 严格比较,比较值和数据类型

    常量

    • define

      • define(常量名,常量值,是否区分大小写)

        • 第三个不填写默认区分大小写默认Flase区分

    字符串

    创建字符串

    • $str="test hello world"; $str1="asdfa";

    并置字符串

    • echo $str.$str1;

    求字符串长度

    • echo strlen($str);

      • 返回一个整数

    查找

    • echo strpos(字符串,需要查找的子串);

      • 如果有返回一个整数位置,如果没有就返回false

    选择结构

    if

    • if(条件){如果成立执行}

    • if……else

      • if(条件){成立执行}else{不成立执行}
    • if……elseif……

      • if(条件1){条件1成立执行}elseif(条件2){条件2成立执行}else{都不成立执行}

    switch

    • switch(参数){case 如果值和参数值相同:执行;break;case:如果值和case1不一样判断这里:执行;break;default:如果都不相同执行这里;

    • case

      • 后面用来猜参数的值,如果值相同继续执行如果不同就往下一个case判断
    • break

      • 如果没有这个,假设case1的时候成立执行完了还会继续往下执行下一个case后面的语句;
    • default

      • 如果所有的语句都不成立就执行这个,常常放在结尾

    数组

    数值数组

    • 创建

      • $arr=array{"asld","dslf",2,23};
    • 调用

      • $arr[1]

        • $数组名[下标];下标由0开始计算
    • 获取数组长度

      • count

        • echo count($arr);
    • 遍历数组

      • for($x=0;x<count($arr);x++){echo arr[$x];}

    关联数组

    • 有键和值的数组

    • 创建

      • $arr=array{"name"=>"xiaoming","old"=>"20","like"=>"dsafd"};
    • 遍历

      • foreach($arr as x=>vlue){echo x.":".vlue;}

    多维数组

    • 由多个一维数组组成

    数组排序

    • sort()

      • 升序
    • rsort()

      • 降序排序
    • asort()

      • 根据关联数组的值升序
    • ksort()

      • 根据关联数组的键升序
    • arsort()

      • 根据关联数组的值降序
    • krsort()

      • 根据关联数组的键降序

    循环结构

    while

    • while(条件){需要执行的代码}

    do……while

    • do{需要执行的代码}while(条件);

    for

    • for(初始值;条件;增量){需要执行的代码}

    foreach

    • foreach(数组名 as 变量){要执行的代码}

    超全局变量

    $GLOBALS

    • 全局变量数组

    $_SERVER

    • 包含信息头,路径脚本位置等信息的数组

    $_REQUEST

    • 用于收集表单数据,和GET和POST方法一样

    $_POST

    • 表单收集

    $_GET

    • 表单收集

    $_FILES

    $_EVN

    $_SESSION

    魔术常量

    LINE

    • 文件中当前的行号

    FILE

    • 文件的完整路径和文件名

    DIR

    • 文件所在目录,不包括文件名

    FUNCTION

    • 当前所在函数

    CLASS

    • 当前所在类

    TRAIT

    NETHOD

    • 返回方法名

    NAMESPACE

    • 返回当前命名空间

    命名空间

    namespace spacename;

    • 语法格式

    命名空间可以像文件夹一样嵌套

    • 防止变量串门

    函数

    创建函数

    • function 函数名(){需要执行的代码}

    带参数的函数

    • function 函数名(变量){需要执行的代码}

    带返回值的函数

    • function fun1(){return 1;}

    面向对象

    • 定义了一个事物比如狗类,鸟类

    对象

    • 类 的实例

    成员变量

    • 类内部的变量

    成员函数

    • 成员方法,用于访问内部成员变量,或者描述一个类的动作

    继承

    • 继承,子类自动继承父类的数据结构和方法机制,在父类的基础上添加或修改适合自己的对象

    父类

    • 一个类被其类继承

    子类

    • 一个继承其他类为子类,也可以成为派生类

    多态

    • 函数或者方法可以作用于多种类型的变量上,获得不同的结果

    重载

    • 函数或者方法重名,但是参数不同,(类似重写)

    抽象性

    • 属性和行为抽象成类

    封装

    • 将一个客体属性与行为绑定

    构造函数

    • 主要用来创建对象时初始化对象,给成员变量赋初始值

    析构函数

    • 和构造函数相反,用来善后

    表单

    $_GET和$_POST

    • 使用这两个变量以键值对的方式获取到对应表单标签的值
    • 如果是对选菜单就利用键值对获取一个数组
    • 单选按钮获取的是一个布尔值

    考虑安全性

    • action=""
    • 加入属性

    $_REQUEST

    • 可以替代$_GET和$_POST
    • 个人认为考虑代码兼容性

    高级

    多维数组

    • 数组内部嵌套数组

    日期

    • 语法

      • date(设置时间格式,设置时间点[默认当前时间])

    包含

    • include

      • 对文件不是很依赖,发生错误继续执行
    • require

      • 对文件非常依赖,发生错误结束脚本

    文件

    • 打开文件

      • $file=fopen("路径/.文件名","打开方式")

      • 文件打开方式

        • r(只读)
        • r+(读/写)
        • w(只写)
        • w+(读写)
        • a(追加)
        • a+(读/追加)
        • x(只写)
        • x+(读/写)
    • 关闭文件

      • fclose($file)
    • if(feof($file))echo "文件结尾";

    文件上传

    • 通过$_FILES["对应表单标签的name"]["关于文件的信息"]

    • 关于文件的信息

      • name(文件名)
      • type(文件类型)
      • size(文件大小)
      • tmp_name(临时文件名)
      • error(文件上传的错误代码
    • 保存临时文件

      • move_uploaded_file(临时文件名,文件路径/文件名)
    • setcookie()

      • 设置cookie函数(必须在html前)
      • 语法:setcookie(cookie名,cookie值,销毁时间(日期格式),path,domain)
    • 使用$_COOKIE["cookie名"]即可取用

    • 把cookie时间设置为过去时间即可销毁

    session

    • 建立于标签前

      • session_start(); 启动会话

    E_mail

    错误处理

    • 基本的错误处理函数:die()函数

      • 接管系统错误,给用户提供友好的错误提示
    • 自定义错误处理器:error_function(level,message,file,line,context)

      • level:必须,设置规定错误报告级别,必须是数字设置错误级别

        • 2:E_WARING

          • 非致命的run-time错误,
        • 8:E_NOTICE

          • run-time通知,可能有错误但是可以运行
        • 256:E_USER_ERROR

          • 致命错误,类似于trigger_error()设置的E_ERROR
        • 512:E_USER_WARNING

          • 非致命生成的警告,类似E_WARNING
        • 1024:E_USER_NOTICE

          • 用户生成通知,类似E_NOTICE
        • 4096:E_RECOVERABLEW_ERROR

          • 可捕获的致命错误,类似E_ERROR,但可被用户定义的处理程序捕获
        • 8191:E_ALL

          • 所以错误警告
      • message:必须,为用户定义的错误规定错误消息

      • file:规定错误发生的文件名

      • line:规定错误发生的行号

      • context:规定一个数组,包含了当错误发生时再用每个变量以及值

    异常处理

    • Try

      • 使用异常的函数应该位于"try"代码块内.如果没有触发异常,则代码将照常执行.异常被触发会抛出一个异常
    • throw

      • 规定如何触发异常,每一个"throw"必须对应至少一个"catch"
    • catch

      • 捕获异常,并创建一个包含异常信息的对象

        • catch (customException $e)

    过滤器

    • 用于验证和过滤来自非安全数据来源的数据,比如用户的输入

      • 来自表单的数据
      • cookies
      • web services data
      • 服务器变量
      • 数据库查询
    • 函数和过滤器

      • filter_var()

        • 通过一个指定的过滤器来过滤单一变量
      • filter_var_array()

        • 通过相同的或者不同的过滤器来过滤多个变量
      • filter_input

        • 获取一个输入变量,并对它进行过滤
      • filter_input_array

        • 获取多个输入变量,并通过相同或不同的过滤器对他们进行过滤
    • 高级过滤器

    JSON

    • 编码解码JSON对象

      • json_encode() 对变量进行JSON编码

        • string json_encode($value[,$options=0])

          • value 要编码的值,只对UTF-8编码的数据有效
          • options 由以下常量组成的二进制掩码
      • json_decode() 对JSON格式的字符串进行解码,转化成PHP变量

        • mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

          • json_string 待解码的JSON字符串,必须是UTF-8编码数据
          • assoc 当参数为true时,返回数组,false:返回对象
          • depth 整数类型的参数,指定递归深度
          • options 二进制掩码,目前只支持JSON_BIGINT_AS_STRING
      • json_last_error() 返回最后发生的错误

    MySQL

    连接数据库

    • MySQLi

      • $连接名 = new mysqli(连接地址,用户名,密码,数据库(可选),端口(可选))
      • $连接名->close() 关闭数据库连接
    • PDO

      • $连接名 = new PDO("mysql:host=$servername;dbname=$dbname",$username,$passwd)

        • mysql:数据库名
        • $servername:数据库地址
        • $dbname:数据库名
        • username:用户名
        • passwd:密码
      • $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);设置PDO错误模式为异常

    插入数据

    • mysqli

      • 写一条sql插入语句
      • 用mysqli_query($连接,$sql语句字符串);发送到数据库执行
      • 判断返回的值
    • PDO

      • 连接到对应的数据库
      • 写一条sql语句
      • 用$连接->exec($SQL语句);发送到数据库
      • 需要接收异常然后抛出

    预处理语句

    • 创建sql语句模板发送到数据库,预留的值使用参数'?'标记

      • insert into myguests(firstname,lastname,email) values(?,?,?)
    • mysqli

      • 预处理及绑定

        • $stmt = $conn->prepare("数据库语句,参数用'?'代替)

          • 相当于预先写好一个模板用一个函数赋值给一个变量
        • $stmt->bind_param("ss...",参数1,参数2,...)

          • 第一个参数为后面传参的数据类型

            • i:整型
            • d:双精度浮点型
            • s:字符串
            • b:二进制大对象
          • 第二个参数为后面传参的变量

        • 后续对传入参数的变量进行赋值即可

        • 然后用$stmt->execute();发送到数据库服务器即可

        • $stmt->close();先关闭

        • 然后关闭数据库连接

    • PDO

      • 需要抛异常

      • 连接数据库后设置参数$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email)
        VALUES (:firstname, :lastname, :email)")

      • 绑定:

        • $stmt->bindParam(':firstname',$firstname);
      • 修改对应变量内容然后:$stmt->execute();发送到对应数据库即可

      • 最后设置连接为null

    读取数据

    • mysqli

      • 先连接数据>使用$连接变量->query($sql语句)>利用变量接收返回的数组(键值对
      • 如果接收的条目为多个数据值
      • 利用$接收变量->fetch_assoc()函数转换称为关联数组
    • PDO

      • 新建连接>设置PDO错误模式
      • $连接名->prepare("sql语句");
      • $stmt->execute();发送
      • $接收变量=$stmt->setFetchMode(PDO::FETCH_ASSOC);设置结果集为关联数组

    AJAX

    通过发送JavaScript请求局部更新页面

    • JavaScript以表单方式发送数据到服务器>服务器PHP处理数据并且返回

    window.XMLHttpRequest:区分IE5-6

    • xmlhttp = new XMLHttpRequest();新建一个http请求

      • xmlhttp = new ActiveXObject("microsoft.XMLHTTP");IE5-6
    • xmlhttp.onreadystatechange=function(){}:readyState属性改变调用此函数

      • xmlhttp.readyState:状态

        • 0:请求未初始化
        • 1:服务器连接已建立
        • 2:请求已接收
        • 3:请求已处理
        • 4:请求已完成且响应已就绪
      • xmlhttp.status:状态

        • 200:"OK"
        • 404:未找到页面
    • xmlhttp.open("提交方式","PHP文件名.php?q="+提交的参数,true);

    • xmlhttp.send();发送

  • 相关阅读:
    使用def文件简化dll导出
    ASP.NET Core MVC 之过滤器(Filter)
    ASP.NET Core 中间件 中间件(Middleware)和过滤器(Filter)的区别
    drf-apiview解读系列二
    干货分享,40个photoshop技能送给你!
    冒泡排序 深度优化
    数据结构与算法_14 _ 排序优化:如何实现一个通用的、高性能的排序函数
    数据结构与算法_12 _ 排序(下):如何用快排思想在O(n)内查找第K大元素
    数据结构与算法_13 _ 线性排序:如何根据年龄给100万用户数据排序
    数据结构与算法_11 _ 排序(上):为什么插入排序比冒泡排序更受欢迎
  • 原文地址:https://www.cnblogs.com/hwx1999/p/12892520.html
Copyright © 2011-2022 走看看