Web应用基础

走进PHP编程世界

PHP简介

PHP全称是Hypertext Preprocessor,超文本预处理器

  • PHP是一种创建动态交互性站点的开源语言
  • 在服务器上执行
  • 网络安全最常用方案以PHP为范本

PHP文件

PHP文件是什么?

  • PHP文件可包含文本、HTML、JavaScript代码和PHP代码
  • PHP代码在服务器上执行,结果以纯HTML形式返回给浏览器
  • PHP文件的默认文件扩展名是”.php”

第一个PHP程序

在浏览器上输出文本”Hello World”

1
2
3
<?php
echo "Hello World!"
?>
  • 必须把PHP代码放置在标签之间
  • PHP中的每个代码行都必须以分号结束
  • 在浏览器输出文本的指令:echo 和print
  • 大小写敏感

注释

  • 单行://
  • 多行:/* */

PHP语法

变量

PHP 没有声明变量的命令,变量在第一次赋值时被创建

1
$num = 100;

变量创建时不需要指定数据类型,以赋值为准

1
2
$num = 100;
$name = "张三";

变量的命名规则

  • 变量以$符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母、数字以及下划线 (A-Z、0-9 和_)
  • 变量名不能包含空格
  • 变量名是区分大小写的($y和$Y是两个不同的变量)

PHP输出

PHP ehco语句

  • echo是一个语言结构,使用的时候可以不用加括号,也可以加上括号:echo或echo()

PHP print 语句

  • print同样是一个语言结构,可以使用括号,也可以不使用括号:print或 print()

PHP echo 和print语句的区别

  • echo - 可以输出一个或多个字符串
  • print - 只允许输出一个字符串

数据类型

PHP常见数据类型

基本类型

  • String (字符串),Integer (整型) ,Float (浮点型) ,Boolean (布尔型)

复合类型

  • Array (数组),Object (对象)

字符串类型

  • 在PHP中,只有一个字符串运算符
  • 并置运算符(.)用于把两个字符串值连接起来
1
2
3
4
5
<?php
$txt1 = "Hello world!";
$txt2 = "Arknights";
echo $txt1.$txt2;
?>

整型和浮点型

  • var_dump()函数用于返回变量的数据类型和值
1
2
3
4
5
6
7
8
<?php
$x = 100;
var_dump($x);
echo "<br>";
$x = 10.365;
var_dump($x);
echo "<br>";
?>

布尔类型

  • 只能true或false
1
2
3
4
5
6
7
8
<?php
$x = true;
$y = false;
var_dump($x);
echo "<br>";
var_dump($y);
echo "<br>";
?>

运算符

PHP常用的运算符包括

运算符
赋值运算符 =
算术运算符 +、-、*、/、%
+=、-=、*=、/=、%=
自增自减运算符 ++、–
关系运算符 >、<、>=、<=、
==(相等) !=(不相等)
===(全等) !==(不全等)
逻辑运算符 &&、||、!
注意:除零值以外,所有值都为真

相等和全等案例

1
2
3
4
5
6
7
<?php
$x = 100;
&y = "100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y)
?>

PHP流程控制

流程控制

大多数计算机语言的流程都可以分为三种

  • 顺序结构
  • 选择结构
  • 循环结构

顺序结构

  • 代码的执行由上而下依次执行

选择结构

  • 代码的执行根据不同的条件,执行不同的语句。根据条件的数量不同,分以下三种:if语句、if else语句和if elseif语句

选择结构

if语句

1
2
3
if(条件表达式){
语句块
}

if else语句

1
2
3
4
5
if(条件表达式){
语句块1;
}else{
语句块2;
}

if else if语句

1
2
3
4
5
6
7
8
9
if(条件表达式1){
语句块1;
}else if(条件表达式2){
语句块2;
}else if(条件表达式3){
语句块3;
}else{
其他语句块;
}

选择结构案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
header("content-type:text/html;charset=utf-8");
// if
$age = 16;
if($age < 18){
echo "禁止访问<br>";
}

// else if
$a = 10;
$b = 20;
if($a > $b){
echo $a."<br>";
}else{
echo $b."<br>";
}
?>

循环结构

  • 重复执行的动作

  • PHP支持for、while、do-while、foreach等不同类型的循环

  • 其中foreach主要用于遍历可迭代对象

for语句

  • 语法
1
2
3
for(表达式1;表达式2;表达式3){
语句序列;
}

12.5.1

while语句

  • 语法
1
2
3
while(条件表达式){
语句序列;
}

12.5.2

do-while语句

  • 语法
1
2
3
do{
语句序列
}while(条件表达式);

12.5.3

break和continue语句

  • break用于跳出循环
  • continue用于结束一次循环,继续执行下一次循环

数组

  • 数组是一个能在单个变量中存储多个值的特殊变量

  • 在PHP中,array()函数用于创建数组

在PHP中,常用的有两种类型的数组:

  • 数值数组-带有数字ID键的数组

  • 关联数组- 带有指定的键的数组,每个键关联一个值

  • 数值数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$users = array();
// 手动分配键
$users[0] = "tedu";
$users[1] = "tedu2";
$users[2] = "tedu3";
// 自动分配ID键
$users = array("admin","admin2","admin3");
// 计算数组长度
$arrlength = count($users);
// 打印数组元素
for($i = 0 ; $i < $arrlength ; $i++){
echo $users[$i]."<br>";
}
?>

关联数组

1
2
3
4
5
6
7
8
9
10
11
<?php
$ages = array();
// $ages['zhangsan'] = 18;
// $ages['lisi'] = 19;
// $ages['wangwu'] = 20;
$ages = array("zhangsan" => 18 , "lisi" => 19 , "wangwu" => 20);
$arrlength = count($ages);
foreach($ages as $key => $value){
echo "key: ".$key." value: ".$value."<br>";
}
?>

PHP函数和对象

函数

  • 函数的作用就是封装和重用。
  • 函数中的代码,只有在调用时,才会被执行。
  • 语法
1
2
3
4
5
6
7
// 函数定义
function funName(形参){
语句块;
}

// 函数调用
funName(实参);
  • 函数使用案例
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function myMax($a , $b){
if($a > $b){
return $a;
}else{
return $b;
}
}

$max = myMax(100 , 20);
echo $max;
?>

类和对象

面向对象概念

  • 类定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作

  • 对象是类的实例

  • 成员变量是定义在类内部的变量。在类被实例化为对象后,该变量即可称为对象的属性

  • 成员函数是定义在类的内部,可用于访问对象的数据

定义类

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// 解决中文乱码问题
header("content-type:text/html;charset=utf-8");
class phpClass{
// 成员变量
var $var1;
var $var2 = "constant string";
// 成员函数
function myFunc($arg1 , $arg2){
代码
}
}
?>

定义类的语法解析:

  • 类使用class关键字后加上类名定义
  • 类名后的一对大括号({})内可以定义变量和方法
  • 类的变量使用var 来声明,变量也可以初始化值
  • 函数定义类似PHP函数的定义,但函数只能通过该类及其实例化的对象访问
  • 变量$this代表自身的对象。

类定义案例

1
2
3
4
5
6
7
8
9
10
<?php
header("content-type:text/html;charset=utf-8");
class Teacher{
var $name;
var $age;
function show(){
echo '姓名:',$this => name,'年龄:',$this => age,'<br>';
}
}
?>

使用类实例化对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
header("content-type:text/html;charset=utf-8");
class Teacher{
var $name;
var $age;
function show(){
echo '姓名:',$this -> name,'年龄:',$this -> age,'<br>';
}
}

$t1 = new Teacher;
$t1 -> name = '张飞';
$t1 -> age = 30;
$t1 -> show();

$t2 = new Teacher;
$t2 -> name = '赵云';
$t2 -> age = 27;
$t2 -> show();
?>