基础语法

格式

代码必须写在 <?php ... ?> 之内,且每行结尾必须有;号(花括号{}除外)

为便于开发人员记忆,可以编写注释。//# 可编写单行注释,而/* 内容 */ 可实现多行注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

// 我是单行注释
# 我也是单行注释
echo 'hello world';

/*
多行注释:
满足条件的话,咱们就做点啥
*/
if( 1<2 ){
echo '1比2小';
}else{
echo '1比2大';
}
?>

输出

如果你仅想输出内容,请使用echo,如果以调试为目的,请使用var_dump()

1
2
echo 12345;
var_dump(12345);

变量和数据类型

变量 - 容器

用于保存“数据”,这个数据 必然是PHP 9种基础数据类型之一。将数据填充到变量的过程,称之为赋值。

  • 前缀 $
  • 开头:字母或者下划线
  • 组成:字母/数字/下划线
  • 大小写敏感(区分)
1
2
// 定义变量,并赋值
$name = 'abc';

常量

1
2
3
4
5
define('常量名字','常量存储的内容','true');  //最后一个true表示名字大小写都可以,不写就是区分大小写
define('GREETING','Hello Everyone!');

echo GREETING;
//显示Hello Everyone!

数据类型

四种基本数据类型

  • int - 整型(正负整数)

  • float - 浮点型(小数)

  • string - 字符串

  • boolean - 布尔值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//int - 整型(正负整数)
$number = 123;
#1.数值相加
$num1 = 7;
$num2 = 12;
$sum = $num1 + $num2;
echo $sum; // 显示19

//float - 浮点型(小数)
$number = 123.24;

//string - 字符串
$string = 'true';
$string = "<h1>标题</h1>";
#1.双引号能识别变量以及其它特殊字符,单引号所见即所得
$a = 'world';
$b = "hello {$a}"; #输出 hello world
$c = 'hello {$a}'; #输出 hello {$a}
#2.字符拼接
$a = 'hello';
$b = 'world';
echo $a . $b; #输出 helloworld(少了个空格)
echo $a .' '.$b; #让我们补上空格,用 . 拼接

//boolean - 布尔值
$is = true;
$is = false;

array - 数组(一组数据)

如果说变量是「数据」的容器,「数组」就是「变量」的容器,因为数组可以保存一组数据。

键值对(key=>value)

一个键(key)一个值(value)组成一对儿

  • 数组中可以保存多个数据(值/value)
  • 每个数据有个唯一编号(键/key)
  • 每个键值对用逗号”,“分割

每组数据,我们习惯称之为:键值对

1
2
3
4
5
6
//关联数组
#定义数组a,b,c,数据的key;值分别为1,2,3
$arr = ['a'=>1, 'b'=>2, 'c'=>3];
echo =$arr["a"]; #显示1
$ids = [22 => "tom", 30=>"bili", 45=>"tencent"];
echo =$ids[30]; #显示bili
1
2
3
4
//下标数组
#123是值,自动生成的编号为:0、1、2...
$arr = [10,"bmw",21];
echo =$arr["1"]; #显示19
1
2
3
4
5
6
7
//多维数组
$cars = array(
array("benz",10,15),
array("bmw",16,17),
array("audio",11,14)
);
echo $bmw [1][0]; #显示bmw;前面的1代表bmw数组,后面的0代表bmw值

增删改查

说起数组,就需要提到「增删改查」这个经典术语;面对一组数据,我们就要对其进行:添加、删除、修改、查询;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 定义数组
$arr = ['a'=>1, 'b'=>2, 'c'=>3];

# 增加一个键值对 -增
$arr['d'] = 4;

# 修改指定key的值 -改
$arr['a'] = 2;

# 输出一个key的值 -查:
echo $arr['a'];

# 删除一个键值对,和其他的语法不一样,需要用unset() 函数 -删
unset($arr['a']);

[key] 是非常重要的操作符,所有需要用key的时候,都是这个操作符。

object - 对象

条件及运算符

if条件语句

1
2
3
4
5
6
7
8
$num = 2;
if ($num <= 1) {
echo "<=1"
}else if($num <= 3){
echo "<=3"
}else{
echo ">3"
}

switch条件语句

如果您希望有选择地执行若干代码块之一,请使用 switch 语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
首先对一个简单的表达式 n(通常是变量)进行一次计算。
将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。
代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。
default 语句用于不存在匹配(即没有 case 为真)时执行。
*/

switch (n){
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
break;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$favcolor="red";
switch ($favcolor){
case "red":
echo "你喜欢的颜色是红色!";
break;
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}

关系运算符

  • =:等于

  • ===:等等等于

  • < >:小于 大于

  • <= >=:小于等于 大于等于

  • !=:不等于

  • !===:不等等于

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$num = 2;
//条件成立执行下面的代码,显示一;条件不成立,不会执行下面的代码,显示空白
if ($num <= 4) {
echo "一"
}
//if和else if属于排队关系,依次判断。
//if判断通过,显示一;否则接着判断else if看是否成立,通过则显示二,不通过就显示空白;
if ($num >= 4) {
echo "一"
}
else if ($num <=4){
echo "二"
}
//if和else属于对立面,if判断不通过就用else的代码
//#1#2通过显示一;#1通#2不通显示二;#1不通显示三
if ($num < 4) { #1
if ($num >1){ #2
echo "一"
} else { #3
echo "二"
}
} else { #4
echo "三"
}

$num = '4';
//一个等号,只判断值是否相等,下方显示一
if ($num = 4) {
echo "一"
}
//三个等号,判断值和类型是否相等,下方代码显示空白
if ($num === 4) {
echo "一"
}

逻辑运算符

  • AND/&&:逻辑与,都为真才行

  • OR/||:逻辑或,有一个真就行

  • XOR:逻辑异或,必须一真一假才行,同真同假都不行

1
2
3
4
5
6
7
8
9
10
11
$num = 4;
if ($num > 2 AND $num < 10){
echo "红"
}
if ($num > 2 OR $num < 3){
echo "绿"
}
//逻辑异或,两边都是真,不显示蓝
if ($num > 2 XOR $num < 10){
echo "蓝"
}

循环

For循环

for 循环用于您预先知道脚本需要运行的次数的情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for (初始值; 条件; 增量){
要执行的代码;
}

//实例
#定义一个初始值为 i=1 的循环。
#只要变量 i 小于或者等于 5,循环将继续运行。
#循环每运行一次,变量 i 就会递增 1:

for ($i=1; $i<=5; $i++){
echo "数字为 " . $i . PHP_EOL;
}

/*输出
数字为 1
数字为 2
数字为 3
数字为 4
数字为 5
/*

foreach 循环

foreach 循环用于遍历数组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
foreach ($array as $value){
要执行的代码;
}

//实例
//每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。

$x=array("Google","Runoob","Taobao");
foreach ($x as $value){
echo $value . PHP_EOL;
}

/*输出
Google
Runoob
Taobao
*/
1
2
3
4
5
6
7
8
9
$people = [
"tom" => "1@163.com",
"bili" => "2@163.com",
"tencent" => "3@163.com"
];
foreach($people as $people => $email){
echo $people. ":" .$email;
echo "<hr>";
}

image-20220405182428584

while循环

while 循环将重复执行代码块,直到指定的条件不成立。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while (条件){
要执行的代码;
}

//实例
$i=1;
while($i<=5){
echo "The number is " . $i . "<br>";
$i++;
}

/*输出
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
/*

do…while语句

do…while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
do{
要执行的代码;
}
while (条件);

//实例
//首先设置变量 i 的值为 1 ($i=1;)。然后,开始 do...while 循环。循环将变量 i 的值递增 1,然后输出。先检查条件(i 小于或者等于 5),只要 i 小于或者等于 5,循环将继续运行

$i=1;
do{
$i++;
echo "The number is " . $i . "<br>";
}
while ($i<=5);

/*输出
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
/*

函数

可被重复利用的代码块。

函数命名方法,包括变量命名也是

1
2
3
4
5
6
//小驼峰命名法/Camel Case
myFunction #首字母不大写后面的单词大写
//连线命名法/Lower Case
my_function #使用下划线_连接单词
//大驼峰命名法/Pascal Case
MyFunction #单词字母都大写

创建函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#定义函数----------------------------------------------------------
function 函数名(参数,参数){
要执行的代码;
}
//调用函数
函数名();

#示例1:无参无返回值---------------------------------------------------
function simpleFunction(){
echo "helloworld";
} #定义函数,simpleFunction这个函数就干了一件事情:输出helloworld
simpleFunction(); #调用函数,输出helloworld


#示例2:有参有返回值---------------------------------------------------
function addNumbers($num1,$num2){
return $num1 + $num2;
}
addNumbers(8,6); #只返回了14,但是没打印输出
echo addNumbers(8,6); #输出14

function addNumbers($num1,$num2){
echo $num1 + $num2;
}
addNumbers(8,6); #输出14