【学习资料】
目录
1,PHP是什么
PHP(Hypertext Preprocessor 超文本预处理器) 的简称,是一种被广泛应用的开源通用的服务器端脚本语言,适用于 Web 开发并可嵌入 HTML 中。
- 通用:指跨平台,如:Windows、Linux、MacOS
- 开源:意味着你可以轻松获取全部源代码,并进行定制或扩展
- 免费:意味着你不必为PHP花一分钱,哪怕用在商业项目中
- 服务器端:意味着你必须将它安装在服务器环境下才可以使用
- 脚本语言:解释型语言,按编写顺序执行。是指不需要编译,直接由解释器/虚拟机执行的编程语言
2,PHP能做什么
- 可以快速动态的生成HTML页面
- 可以返回前端需要的各种类型的数据
- 可以高效安全的处理表单数据
- 可以安全的操作服务器上的文件
- 可以控制与客户端的会话( Cookie/Session )
- 可以对用户的行为进行授权控制
- 可以高效安全的操作各种类型的数据库
- 通过扩展,可以实现加密,压缩等其他功能
- 可以提供接口数据,包括:小程序、APP、等其他语言
3,PHP程序执行流程

4,学习PHP需要什么基础
- HTML:超文本标记语言
- CSS:层叠样式标本
- JavaScript:前端脚本编程语言
5,PHP基础语法
php文件默认扩展名是 .php;
php文件中可以包含html,css,JavaScript代码;
一,php程序
1,php标记
- 开始标记<?php和结束标记?>中间写PHP代码;
- 如果没有写结束标记,那么代表所有的代码都用php来解析;
javascript
<?php
?>
2,php代码
指令 | 描述 |
---|---|
echo | 可以输出一个或多个字符串,用逗号(,)隔开 |
只允许输出一个字符串 |
javascript
<?php
echo 111,222;
print 111;
?>
; // 语句结束符
3,php注释
javascript
<?php
// 这是单行注释
/*
这是多行注释
注释后,在浏览器和网页源码中,是看不到的。
*/
?>
二,php变量
1,声明变量
javascript
<?php
$a = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
echo $a;
?>
2,变量命名规则
- 开头不能用数字;
- 中间不能有空格;
javascript
<?php
// 下划线命名法
$new_title = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
echo $new_title;
echo '<hr>';
// 小驼峰命名法
$newTitle = 'php中文网《玉女心经》公益PHP WEB培训系列课程汇总';
echo $newTitle;
echo '<hr>';
// 大驼峰命名法
$NewTitle = 'html5中submit是按钮么';
echo $NewTitle;
?>
三,php标量数据类型

javascript
echo 输出数据值,开发时使用;
var_dump 可以打印数据类型和值,测试时使用;
<?php
$x = true;
var_dump($x); // 类型 值 =》 bool(true)
echo '<hr>';
$y = false;
var_dump($y); // 类型 值 =》 bool(false)
?>
字符串
- 引号内的数据;
- 可以是单引号或双引号;
- 字符串不用引号会报错;
- 数字,浮点数,布尔型,用引号也属于字符串;
双引号与单引号的区别?
- 双引号可以解析变量,单引号不行;
javascript
<?php
$name = "欧阳";
echo "我的名字:$name"; // 我的名字:欧阳
echo '我的名字:$name'; // 我的名字:$name
?>
四,php复合数据类型

五,php特殊数据类型

六,数组
数组Array:数组可以在一个变量中存储多个值;
javascript
1,创建数组
<?php
// 第一种方式
$arr = array();
var_dump( $arr ); //array(0) { }
// 第二种方式
$arrs = [];
var_dump( $arrs ); //array(0) { }
?>
2,创建索引数组
<?php
$arr = array(
'欧阳',
'西门',
'灭绝'
);
var_dump( $arr ); // array(3) { [0]=> string(6) "欧阳" [1]=> string(6) "西门" [2]=> string(6) "灭绝" }
?>
3,创建关联数组
<?php
$arr = [
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
];
var_dump( $arr ); // array(3) { ["ouyang"]=> string(6) "欧阳" ["ximen"]=> string(6) "西门" ["miejue"]=> string(6) "灭绝" }
?>
<?php
$arr = [
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
];
var_dump( $arr['miejue'] ); // string(6) "灭绝"
?>
print_r()打印数组
javascript
print_r() VS var_dump()
<?php
$arr = [
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
];
var_dump( $arr); // array(3) { ["ouyang"]=> string(6) "欧阳" ["ximen"]=> string(6) "西门" ["miejue"]=> string(6) "灭绝" }
echo "<hr>";
print_r($arr);// Array ( [ouyang] => 欧阳 [ximen] => 西门 [miejue] => 灭绝 )
?>
php 连接符 .
javascript
<?php
$arr = [
'ouyang' => '欧阳',
'ximen' => '西门',
'miejue' => '灭绝'
];
echo "我的名字是" . $arr['ouyang'] . ",他的名字是" . $arr['ximen']; // 我的名字是欧阳,他的名字是西门
?>
php数组循环
javascript
<?php
$arr = array(
"ouyang" => "欧阳",
"ximen" => "西门",
"miejue" => "灭绝"
);
// 第一种方法
foreach($arr as $v) {
echo $v;
echo '<hr>';
}
// 第二种方法
foreach($arr as $k => $v) {
echo $k . '----' . $v;
echo '<hr>';
}

七,PHP条件判断
javascript
// 三元运算符
<?php
$ouyang = '123';
echo $ouyang ? '我知道了' : '我不知道'; // 我知道了
// if ...... else
<?php
$miejue = "西门";
$ouyang = '';
if($ouyang) {
echo "我是欧阳";
}elseif($miejue) {
echo "我是西门";
}
// switch语句
$str = '欧阳11';
switch($str) {
case '欧阳':
echo "我是欧阳";
break;
case "西门":
echo "我是西门";
break;
case "灭绝":
echo "我是灭绝";
break;
default:
echo $str;
}
// match 语句
$str = 'ximeng';
echo match($str) { // 西门
"ouyang" => "欧阳克",
"ximeng" => "西门",
"miejue" => "灭绝",
};
- Match是一个表达式,表示其结果可以存储在变量中或返回;
- Match分支仅支持单行表达式,不需要中断,陈述;
- Match匹配进行严格的比较;
八,PHP函数
1,什么是函数?
- 函数是一段可以重复执行的代码片断;
- 函数是实现代码复用的重要手段;
- 函数是现代编程语言最重要的基本单元;
- 函数永远是编程的核心工作;
2,函数的分类
- 系统函数:编程语言开发者事先写好提供给开发者直接使用的;
- 自定义函数:用户根据自身需求,对系统功能进行扩展;
3,String字符串函数

4,Array数组函数

5,自定义函数
javascript
<?php
function fun_name($num1,$num2=20,$num3=30) {
return $num1 + $num2 + $num3;
};
echo fun_name(10); // 60
// 函数的基本语法:
- 必须使用关键字 function声明;
- 函数名称不区分大小写,多个单词推荐使用下划线连接;
6,作用域
javascript
- php中,只有函数作用域和全局作用域;
- 所有函数作用域中的变量,外部不可见;
- 全局作用域声明变量,在函数中是可见的;
九,PHP运算符

十,循环
javascript
<?php
$int = 1;
// while循环
while($int < 10) {
echo $int;
$int++;
}
// do......while循环
do {
echo $int;
$int++;
}while($int < 10);
// for 循环
for($int=1; $int<10; $int++) {
echo $int;
}
continue
- 结束当前循环,进入下次循环
- 在循环语句中使用 while,for
break
- 结束循环
- 在循环语句中使用 while,for,switch
- 可以跳出多层循环
6,PDO操作数据库
- PDO:php数据对象
- PDO统一了PHP访问各种类型数据库的访问方式;
7,类与对象
javascript
<?php
// 创建类
class Teacher {
// 成员变量:类属性
public $name = '灭绝师太';
// 成员方法
public function fun1() {
return '姓名:' . $this->name . ' ,你好';
}
}
// 调用类
$ouyang = new Teacher();
echo $ouyang->name; // 灭绝师太
echo '<hr>';
echo $ouyang->fun1(); // 姓名:灭绝师太 ,你好
javascript
<?php
// 创建类
class Teacher {
// 成员变量:类属性
public $name = '灭绝师太';
public $school = "PHP中文网";
// __construct 构造方法
public function __construct($name,$school)
{
$this->name = $name;
$this->school = $school;
}
// 成员方法
public function fun1() {
return '姓名:' . $this->name . ' ,你好';
}
// __destruct 析构方法
public function __destruct()
{
echo '<hr> 类执行完毕,要关闭了';
}
}
// 调用类
$ouyang = new Teacher("西门大官人",'php');
echo $ouyang->name; // 西门大官人
echo '<hr>';
echo $ouyang->fun1(); //姓名:西门大官人 ,你好
类的三大特性
- 继承:可以让某个类型的对象获得另一个类型的对象的属性和方法;
- 封装:指将客观事物抽象成类,每个类对自身的数据和方法实行保护;
- public 默认的,关键词定义类内,类外,子类都可见;
- protected 关键词定义类内,子类可见,类外不可见;
- private 关键词定义类内可见,子类,类外不可见;
- 多态:指同一个实体同时具有多种形式,它主要体现在类的继承体系中;
8,命名空间
解决全局成员的命名冲突问题;
创建命名空间
javascript
<?php
// 第一种
// namespace one {
// function php() {};
// }
// namespace two {
// function php() {};
// }
// 第二种
namespace three;
function php(){};
namespace four;
function php() {};
javascript
<?php
namespace one;
const name = "西门";
function php(){
echo "我是" . name;
};
// 调用 one命名空间的php方法
php(); // 我是西门
namespace tow;
const name = "欧阳";
function php() {
echo "我是" . name;
};
php(); // 我是欧阳
namespace one\two\three;
const name = "灭绝";
function php() {
echo "我是" . name;
}
php(); // 我是灭绝