<?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()

php 复习的更多相关文章

  1. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  2. vuex复习方案

    这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.

  3. 我的操作系统复习——I/O控制和系统调用

    上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...

  4. 复习(1)【Maven】

    终于开始复习旧知识了,有输入必然要有输出.输入和输出之间的内化过程尤为重要,在复习的同时,真正把学到的东西积淀下来,加深理解. Maven项目概念与配置 Maven是一个项目管理和综合工具.Maven ...

  5. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  6. JS复习--更新结束

    js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...

  7. jQuery 复习

    jQuery 复习 基础知识 1, window.onload $(function(){});   $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...

  8. jQuery5~7章笔记 和 1~3章的复习笔记

    JQery-05 对表单和表格的操作及其的应用 JQery-06 jQuery和ajax的应用 JQery-07 jQuery插件的使用和写法 JQery-01-03 复习 之前手写的笔记.实在懒得再 ...

  9. HTML和CSS的复习总结

    HTML(Hypertext Markup Language)超文本标记语言:其核心就是各种标记!<html> HTML页面中的所有内容,都在该标签之内:它主要含<head>和 ...

  10. 2017年1月1日 java学习第二天复习

    今天是新年的第一天,以前学习没有总结习惯,学习效率和成果都很不好.  学习的过程就是反复的复习和不断学习的过程,开始今天的学习总结   学习java的第二天. 今天学习了java最基础的一些内容,照着 ...

随机推荐

  1. BZOJ2631——tree

    1.题目大意:bzoj1798的lct版本 2.分析:这个把线段树改成splay就好 #include <stack> #include <cstdio> #include & ...

  2. IOI2015 Boxes

    Description 给出一个环形,n个点,每次只能访问k个点,求最短距离. Sol 贪心. CCF的题解. 首先只会最多走一趟环形,根据抽屉原理,如果一边不足k个才会到另一边,所以对于第二次以上的 ...

  3. 29 GroupSock(NetAddressList)——live555源码阅读(四)网络

    29 GroupSock(NetAddressList)——live555源码阅读(四)网络 29 GroupSock(NetAddressList)——live555源码阅读(四)网络 简介 Net ...

  4. python操作memcached以及分布式

    memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件.现在已成为 mixi.Facebook.Live ...

  5. ubuntu安装文件比较工具Meld

    Meld是一款可视化的文件及目录对比(diff) / 合并 (merge) 工具,通过它你可以对两个或三个文件/目录进行对比,并以图形化的方式显示出它们的不同之处,同时还提供编辑及合并功能,另外还支持 ...

  6. jQuery工作原理

    jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的.从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库.jQuery改变ja ...

  7. Silverlight datagrid 排序 (转)

    Silverlight的DataGrid有很多强大之处,其中一个便是排序. DataGrid指定过ItemsSource之后,通过点击列头就可以实现排序,不用写任何代码.这对我这种懒人来说实在是太爽了 ...

  8. 转: UAC 问题

    打开VS2005.VS2008.VS2010工程,查看工程文件夹中的Properties文件夹下是否有app.manifest这个文件:如 没有,按如下方式创建:鼠标右击工程在菜单中选择“属性”,点击 ...

  9. React JS快速入门教程

    翻译至官方文档<Tutorial>http://facebook.github.io/react/docs/tutorial.html 转载请注明出处:http://blog.csdn.n ...

  10. Linux之图形化shell------dialog

    转自:Linux dialog详解(图形化shell) | 运维生存时间 对话 UNIX: 使用 shell 脚本创建好的图形应用程序---http://www.ibm.com/developerwo ...