第一课: php简介
架构服务器 lamp (linux Apache mysql php) lnmp(linux nginx mysql php)
搭建php运行环境
php开发工具:
文本编辑器
sublime3
IDE
netbeans eclipse phpstorm
第二课: 搭建PHP的运行环境
基本运行环境:
1. Apache服务器/nginx
2. PHP脚本
3. MySQL 数据库
php集成包:
PhpStudy xammp wamp
第三课: PHP变量与数据类型
变量: php中基本的数据存储单元,可以存储不同的数据类型。
变量的声明: 变量的名称由一个美元符“$”开头,“$”后是一个标识符。
标识符: 由字母,数字或者下划线组成。
四种标准类型:
boolean(布尔型)
$a = TRUE; $a = FALSE;
integer(整型)
$a = 1; $a = -12;
float(浮点型)
$a = 1.001;
string(字符串)
$a ="这是一个字符串";
两种复合类型:
array(数组)
$arr = array(1,2,3,4); $arr = array("A"=>1, "B">=2);
object(对象)
整数与浮点数之间的转换:
$a = 100.0;
echo (int)$a;
$b = 123;
echo float($b);
字符串与整数之间的转换:
$c = "123abc";
echo (int)$C;
$d = 123;
echo (string)$d;
第五课: php中的运算符
第八课: php中的数组操作
创建数组:
php中的数组是一个关键字或值的集合
(值可以是任何一种类型,包括另一种数组)
php中使用array来创建一个数组
array(key=>value, key=>value...)
例子:
$arr = array(3,5,6,7,8);
$arr = array("id" => 2, "title"=>3);
修改数组:
用方括号的语法来修改数组
$arr[]=value
$arr = array("a"=>"北京", "b"=>"天津", "c"=>"上海");
$arr['a'] = "石家庄";
$arr['c'] = "大连";
数组的函数
使用count函数统计数组条数 count($arr);
使用is_array函数判断数组 is_array($arr);
另一种创建数组的函数explode explode("key", value);
使用foreach遍历数组
遍历数组很多种方法,可以使用For循环 while循环,最巧妙的
一种遍历数组foreach给我们带来了更多方便
foreach($arr as $key => $value){
......
}
第九课: php中的字符串的操作
常见的字符串操作
1. 去掉字符串两边的空格: trim()
2. 字符串的合并: .
3. 字符串的比较: ==
4. 字符串的替换: str_replace()
5. 字符串的截取: substr()
6. 加密函数: md5()
7. 字符串与数组之间的转换: explode()
第十课: GD库画图操作
第十一课: PHP自定义函数和PHP系统内部函数
PHP如何自定义函数:
使用Function来自定义一个函数:
Function func_name($val){
....
}
函数的命名和自定义变量一样
一个自定义函数中的变量是局部的,函数外不生效,用global全局变量
的时候,在函数外才可使用变量(不建议)
function_exists(fun1) //判断函数fun1是否存在
第十二课: PHP操作cookie
Cookie:
cookie是web服务器暂时存储在用户硬盘上的一个文本文件,并且随后被web
浏览器读取。
http协议是一个无状态的协议,服务器单从网络连接上无从知道客户身份,
所以服务器就给客户端颁发一个通行证,这个通行证就在客户端,服务器
通过这个通行证能够确认客户的身份。
cookie的功能:
1. 记录访客的某些信息
2. 在页面之间传递信息
操作Cookie
创建Cookie: setcookie()
读取Cookie: $_COOKIE[]
删除Cookie: unset()
eg:
<?php
$value = "beijing";
setcookoe("name", $value);
$name = $_COOKIE['name'];
var_dump($name);
unset($_COOKIE['name']);
var_dump($_COOKIE['name']);
?>
Cookie的生命周期
Cookie不设定时间: 只要关闭浏览器Cookie就会消失
Cookoe设定时间: 浏览器会把Cookie保存到硬盘,直到他的有效
时间超过
第十三课: PHP操作session
Session:
一个终端用户与交互系统进行通信的时间间隔
Session的功能:
Session回话适用于存储用户的信息量比较少的情况。
如果用户需要存储的信息量相对较少,并且存储内容不需要长期存储,
那么使用Session把信息存储到服务器比较合适。
Session操作:
1. 创建会话:
session_start()
2. 注册会话:
$_SESSION['name']
3.使用会话:
$name = $_SESSION['name']
4. 删除会话:
unset($_SESSION['name'])
第十四课: PHP操作MySQL数据库
创建数据库
Create database [if not exists] 数据库名 [数据库选项]
数据库名; 可以是任意字符(目录可以创建成功),但特殊的
字符需要使用反引号包裹。标识符的大小写区别于操作系统的大小
写特征。
if not exists 表示在数据库不存在时创建。
数据库选项中,可以设定数据库字符集(character set utf8)
和校对集(collate utf8_general_ci)。
查询数据库
1. 查询已经存在的数据库:
Show databases
2. 查询创建数据库的语句:
Show create database db_name
删除数据库
1. Drop database [if exists] db_name;
2. if exists 表示数据库存在才删除。
3. 当删除一个数据库时,同时删除该数据库相关的目录及其目录内容。
创建表的操作
Create table [if not exists] tbl_name (列定义) [表选项]
Create table [if not exists] tbl_name like old_tbl_name;
Create table [if not exists] tbl_name select语句;
每当创建一个表,会在数据目录场景对应的文件保存表信息。
列定义:
1. 列名 类型 [是否为空] [Default 默认值] [是否为自动增长]
[是否为主索引或唯一索引][comment 注释] [引用定义]
2. 类型指的是 当前列所保存数据的类型。(简单的int整形,varchar字符串类型,需要指定最大长度)
3. 每个列定义使用逗号分隔。
删除表:
Drop table [if exists] tbl_name;
注意,可以同时删除多个表名,表名之间使用逗号分隔。
第十五课: 搭建博客系统
第十六课: PHP面向对象编程
1. 使用class 创建一个类:
class 类名{
......
}
2. 类的成员属性和成员方法:
class MyPo{
public $name;//成员属性
public $price;
function func(){ //成员方法
return "PHP系列教程视频";
}
}
3. 使用new函数对象实例化
new 对象名(参数)
//实例化一个类
$test = new MyPo();
$a = $test->func(); //调用类的方法
$b = $test->$name; //调用类的属性
4. 对象中的$this 关键字
$this 关键字是用来访问当前对象中的对象属性和对象方法的系统变量。
class MyPo{
public $name;
public $price;
function fun1(){
$this->name;
}
.....
$this->fun1();
.....
}
($this仅能在当前对象中使用)
5 初始化对象 __construct()
我们在创建一个类有时候需要初始化一些操作,这个时候我们需要使用初始化函数:
class MyPo{
function __construct(){
//初始化操作
}
}
class Test{
public $name;
function __construct($name){
$this->name = $name;
}
function testes(){
return $this->name;
}
function tests(){
return "beijing";
}
}
$a = new Test("beijing");
var_dump($a->name);
6. 封装关键字
public 表示全局,类内部外部 子类都可以访问;
protected 表示受保护的,只有本类内部可以使用;
private表示私有的,只有本类内部可以使用;
7. 继承关键字
extends
8. 抽象关键字 abstract
在PHP中声明一个抽象类或者方法我们需要使用abstract关键字
一个类中至少有一个方法是抽象的,我们称之为抽象类。
所以如果定义抽象类首先定义抽象方法。
abstract class class1{
abstract function fun1(); //抽象方法不允许有{} 抽象方法前必须加abstract
}
抽象类的几个特点:
1>. 不能被实例化,只能被继承。
2>. 继承的派生类当中要把所有抽象方法重载才能实例化。
9. 常用的关键字:
1>. final
当定义类的时候该类将不能被继承,当用来定义方法的时候该方法将不能被重载。
2>. self
用来用类访问当前类中的内容的关键字,类似与$this 关键字,但$this是需要类
实例化以后才可以使用,self可以直接访问当前类中的内部成员
self::类内部成员(属性或者方法)
类名::类内部成员(属性或者方法)
3>. static
用来定义类的静态属性或方法,可以在类未被实例化时使用,静态属性单独占用内存而不会
因创建多个对象时而导致同样的方法或者属性重复占用。
4>. const
用来定义类中的常量,类似PHP外部定义常量的关键字define(); Const只能修饰类当中
的成员属性。
class cl1{
const NAME; //注意: 建议大写常量, 常量不使用$符号
function fun1(){
....
}
}
10. 类中的接口的应用
1>.关键字 interface
2>.关键字 implements
11>. PDO(PHP Data Object):
PDO是PHP的内置的一个扩展类,它对数据库进行访问,不同的数据库使用不同的方法名,
解决数据库链接不统一的问题。