php 复习
一.php基础语法 1.输出语句:echo print print_r var_dump() 2.php是弱类型语言 强制转换类型: (类型)变量 settype(变量,类型) 3.变量定义 $a = 5; 可变变量:$b="a"; $$b =10; 判断变量类型 gettype(变量);获取变量类型 is_类型() is_int();判断变量是否是该类型 判断变量是否为空:empty() isset(); 删除变量:unset(); 4.字符串的定义方式 $str = "hello"; 可以解析变量 解析转义字符 $str = 'hello'; 不能解析 $str = <<<A hello A; 不用担心单引号和双引号的问题 5.运算符与表达式 6.语句 分支:if switch...case 循环:for foreach while do...while 7.函数 四要素:返回类型,函数名,参数列表,函数体 函数的定义方式: function Show() 普通的 { } function Show($a) 有参数的 { } function Show() 有返回的 { return $a; } function Show($a=5) 有默认值的 { } function Show() 参数可变的 { func_get_args(); } 8.常用的函数 随机数的:rand(); rand(0,10); 日期时间:time(); 可以获取当前日期时间戳 date(格式化字符串,时间戳); 格式化日期时间的 Y年份 m月份 d天 H24小制的小时 h12小时制的小时 i分钟 s秒 strtotime(表示时间字符串); 将字符串转化为时间戳 9.其它 错误抑制符 @ 退出程序:exit(); exit; die("错误信息"); 二:字符串的常用方法 1.取字符串长度:strlen(); 2.拆分字符串:explode(); 3.合并字符串:implode(); 4.截取字符串:substr(); 5.替换字符串:str_replace(); 查找替换 substr_replace(); 指定位置替换 6.去空格:trim(); 7.转大写:strtoupper(); 8.转小写:strtolower(); 9.根据长度拆分:str_split(); 三:正则表达式 1.定界符:/ / 2.匹配开头:^ 匹配结束 $ 3.\d 数字 \s 不可见字符 \w任意数字或单词字符 +前面的表达式至少出现一次 {0,2}前面的表达式至少出现0次最多出现2次 [0,1,2]匹配里面的任意字符 [0-9] 匹配0-9之间的数字 [a-z]匹配a-z之间的单词字符 ()优先级 |或 4.拆分字符串:preg_split(); 5.替换字符串:preg_replace(); 6.匹配字符串中出现的(满足正则)数据:preg_match() preg_match_all() 四:数组 1.数组分类: 根据维度分:一维数组,多数组。 根据索引分:索引数组,关联数组。 2.数组定义: $attr = array(); 常见定义方式 $attr[] = 5; 赋值定义 定义索引数组:$attr = array(1,2,3,4); 定义关联数组:$attr = array("key"=>"value"); 3.索引数组取值:$attr[0]; 关联数组取值:$attr["key"]; 4.遍历数组: for循环,只能遍历索引数组 for($i=0;$i<count($attr);$i++) { $attr[$i]; } foreach遍历,可以遍历索引和关联数组 foreach($attr as $v) { $v; } foreach($attr as $k=>$v) { $v; } each()和list()方法结合 each():返回数组里面当前元素的key和value值,返回的是一个数组的形式 list():将右侧数组的值分别赋给一组变量 list($a,$b) = $attr; 指针遍历 取当前指针指向的元素的值:current(); 取当前指针指向的元素的key:key(); 将指针指向下一个元素:next(); 将指针指向上一个元素:prev(); 重置指针:reset(); 将指针指向最后一个元素:end(); 5.数组的常用函数 取数组长度:count(); 向数组添加元素:array_push(); 判断数组里面是否包含某个元素:in_array(); 合并数组:array_merge(); 去重复:array_unique(); 删除数组元素:unset(); 重新索引:array_values(); 翻转数组:array_reverse(); 数组元素排序:array_multisort(); 五:面向对象 OOP 1.类和对象 类是由众多对象抽象出来的 对象是类实例化出来的 2.类的定义 class Ren { } 成员变量 成员方法 构造函数 析构函数 __get() __set() __tostring() __clone() 3.访问修饰符: public 共有的 private 私有的 protected 受保护的 4.三大特性 封装:目的 做法 继承:概念 特点 函数重写 多态:概念 条件 5.静态 static 静态成员是属于类的,普通成员是属于对象的 Ren::Show(); 6.抽象类:abstract 不能被实例化 用作父类 接口:interface 7.克隆对象 clone 8.构造函数 __construct() 写法特殊 执行时间特殊 9.加载类 include(""); include ""; require(""); require ""; require_once(""); require_once ""; 自动加载类 __autoload() 10.单列模式 11.工厂模式 六:数据访问 1.myqli $db = new mysqli(服务器,用户名,密码,数据库); mysqli_connect_error(); $result = $db->query(SQL语句); $result->fetch_row(); 2.pdo $pdo = new PDO(DNS,用户名,密码); $stm = $pdo->prepare(SQL语句); $stm->excute(); $stm->fetch_row(); ?占位 :字符串 七:Jquery Ajax 1.选择器 $() 根据id选 $("#id") 返回一个jquery对象 从jquery对象里面取DOM对象 取索引0[0] 根据class选 $(".class") 根据属性选 $("[name=a]") 根据标签名选 $("div") 2.操作内容 操作非表单元素 文本 text(); html代码 html(); 操作表单元素: val(); 3.操作属性 添加设置属性 attr(属性名,属性值); 获取属性 attr(属性名); 移除属性 removeAttr(属性名); 4.操作样式 获取样式 css(样式名); 添加设置样式 css(样式名,样式值); 5.事件 $("#id").事件名(function(){}) $("#id").bind(事件名,function(){}); 绑定事件 $("#id").unbind(事件名); 移除事件 6.Ajax async:异步 url:调用的处理页面 data:传递的数据JSON格式 type:数据传递的方式 POST或GET dataType:返回数据类型 TEXT JSON XML success:回调函数 error:当调用出错执行的方法 7.JSON {key:value} XML 必须有一个根 有开始就要有结束 大小写敏感 标签名可以自定义 可以加属性 八.会话控制 SESSION 存储在服务器 有默认过期时间 每个用户存一份 可以存储任何类型数据 必须开启才能使用 session_start(); 必须写在第一行 $_SESSION["uid"] = "lisi"; 安全,占资源 COOKIE 存储在客户端 默认是没有过期时间 每个用户存一份 只能存储字符串 setcookie(名,值); 设置cookie $_COOKIE["uid"]; 读取cookie 不安全,不占资源 九:文件 1.文件上传 做文件上传表单 enctype $_FILES数组取文件信息 控制上传格式和大小 造存储路径(处理文件名) 改文件名 建文件夹 判断文件是否存在 上传保存 move_uploaded_file(); 转编码格式 iconv(原编码,目标编码,字符串); 2.文件操作 文件类型: filetype() is_file() is_dir() 路径: ./ ../ / 遍历目录: glob(); 目录资源 新建目录:mkdir(); 删除目录:rmdir(); 移动目录:rename(); 新建文件:touch(); 删除文件:unlink(); 复制文件:copy(); 获取文件内容:file_get_contents(); 写入内容:file_put_contents(); 文件资源 打开文件资源:fopen(); 关闭文件资源:fclose(); 读取文件内容:fgetc() fgets() fread() fwrite()