PHP基础知识
一.变量
1.变量是用于存储信息的"容器";
2.PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
3. PHP 变量的创建和使用
PHP 没有声明变量的命令。变量在第一次赋值时候被创建;
PHP 是一门弱类型语言,不必向 PHP 声明该变量的数据类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型。
<?php
//创建变量
$name = 'Summer';
$age = 25;
echo $name;
echo $age;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>php嵌入html</title>
</head>
<body>
<h1><?php echo 'Hello world'; ?></h1>
<!--使用创建变量-->
<div><?php echo $name; ?></div>
<div><?php echo $age; ?></div>
</body>
</html>
浏览器执行结果:

4. 变量覆盖
名称相同的情况下,后创建的变量会覆盖之前的变量:
<?php
//创建变量
$name = 'Summer';
$age = 25;
$name = 'Jeff';
echo $name;
echo $age;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>php嵌入html</title>
</head>
<body>
<h1><?php echo 'Hello world'; ?></h1>
<!--使用创建变量-->
<div><?php echo $name; ?></div>
<div><?php echo $age; ?></div>
</body>
</html>
浏览器执行结果:

二.常量
1.常量是一个简单值的标识符,常量值被定义后,在脚本的其他任何地方都不能被改变。
2.常量名称规则
- 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
3.常量定义
设置常量,使用 define() 函数:
define( name, value, case_insensitive );
// name 常量名称
// value 常量值
// case_insensitive 如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。
注意:自 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。从 PHP 8.0.0 开始,只有 false 是可接受的值,传递 true 将产生一个警告。
<?php
//定义常量
define('NAME','Summer');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>php嵌入html</title>
</head>
<body>
<!--使用定义的变量-->
<div><?php echo NAME; ?></div>
</body>
</html>
浏览器执行结果:

4.常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
三.注释
- 单行注释 //
- 多行注释 /* */
<?php
// 单行注释
/*
多行
注释
*/
?>
四.php数据类型
PHP 支持以下几种数据类型:
- String(字符串)
- Integer(整型)
- Float(浮点型)
- Boolean(布尔型)
- Array(数组)
- Object(对象)
- NULL(空值)
- Resource(资源类型)
1.php字符串
一个字符串是一串字符的序列,可以将任何文本放在单引号和双引号中。双引号中可以直接使用变量,但是单引号不行。
<?php
$name = 'liming';
$hobby = "footboll";
echo $name;
?>
2.php整型
整数是一个没有小数的数字。
整数规则:
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
<?php
$a = 123;
echo $a; //123
$b = -123;
echo $b; //-123
$c = 0x8C;
echo $c; //140
$d = 047;
echo $d; //39
var_dump($a); //int(123)
var_dump($b); //int(-123)
var_dump($c); //int(140)
var_dump($d); //int(39)
?>
注:PHP var_dump() 函数返回变量的数据类型和值; 只获取数据类型:gettype()
3.php 浮点型
浮点数是带小数部分的数字,或是指数形式。e和E是计算机中科学计数法的表示符号,代表的是10的幂
<?php
$a = 10.23;
echo $a; //10.23
$b = 2.3e3;
echo $b; //2300
$c = 2E-3;
echo $c; //0.002
var_dump($a); //float(10.23)
var_dump($b); //float(2300)
var_dump($c); //float(0.002)
?>
4.数组
1)索引数组(数值数组):带有数字索引的数组
- 创建数组:A. 通过 方括号[] 创建数组;B. 通过array()函数创建数
- print_r( )方法读取数组内容
- 覆盖/重写
- 在数组末尾添加数据:A. 通过[];B. 通过array_push(arr,val) 函数
- 数组末尾数据删除 array_pop( );
- 数组长度(元素数量) count( )函数
- 数组合并 array_merge(arr1, arr2, ...);
<?php
//索引数组
$fruitOne = ['apple','orange','peach'];
$name = 'Summer';
//方括号访问某个元素
echo $name[1]; //
echo $fruitOne[1]; //orange
//array()函数
$fruitTwo = array('lemon','mango');
echo $fruitTwo[0]; //lemon
//print_r()读取数组内容
$price = [10,15,20,25];
print_r($price); //Array ( [0] => 10 [1] => 15 [2] => 20 [3] => 25 )
//覆盖/重写
$price[1] = 30;
print_r($price); //Array ( [0] => 10 [1] => 30 [2] => 20 [3] => 25 )
//数组末尾添加
$price[] = 5;
print_r($price); //Array ( [0] => 10 [1] => 30 [2] => 20 [3] => 25 [4] => 5 )
//函数array_push() 数组,值
array_push($price, 40);
print_r($price); //Array ( [0] => 10 [1] => 30 [2] => 20 [3] => 25 [4] => 5 [5] => 40 )
//末尾删除 array_pop()
array_pop($price);
print_r($price); //Array ( [0] => 10 [1] => 30 [2] => 20 [3] => 25 [4] => 5 )
//count() 返回数组长度(元素的数量)
echo count($price);
//数组合并 array_merge()
$fruitThree = array_merge($fruitOne,$fruitTwo);
print_r($fruitThree); //Array ( [0] => apple [1] => orange [2] => peach [3] => lemon [4] => mango )
?>
2)关联数组:带有键值对的数组
<?php
//关联数组 - 带有键值对的数组
$colorOne = ['apple' => 'red', 'peach' => 'pink', 'lemon' => 'yellow'];
echo $colorOne['apple']; // red
print_r($colorOne); // Array ( [apple] => red [peach] => pink [lemon] => yellow )
//array()函数创建数组
$colorTwo = array('orange' => 'orange', 'grape' => 'purple');
print_r($colorTwo); //Array ( [orange] => orange [grape] => purple )
//数组末尾添加
$colorTwo['watermelon'] = 'green';
print_r($colorTwo); //Array ( [orange] => orange [grape] => purple [watermelon] => green )
//返回数组长度
echo count($colorTwo); //3
//数组合并
$colorThree = array_merge($colorOne, $colorTwo);
print_r($colorThree);//Array ( [apple] => red [peach] => pink [lemon] => yellow [orange] => orange [grape] => purple [watermelon] => green )
?>
3)多维数组:包含一个或者多个数组的数组
<?php
//多维数组:包含一个或者多个数组的数组
//索引多维数组
$posts = [
['post one', 'Summer', 'lorem', 20],
['post two', 'Lucy', 'lorem', 30],
['post three', 'Henry', 'lorem', 40]
];
print_r($posts[0]); //Array ( [0] => post one [1] => Summer [2] => lorem [3] => 20 )
echo $posts[0][0]; //post one
//关联多维数组
$posts2 = [
['title' => 'post one', 'author' => 'Summer', 'content' => 'lorem', 'likes' => 20],
['title' => 'post two', 'author' => 'Lucy', 'content' => 'lorem', 'likes' => 30],
['title' => 'post three', 'author' => 'Henry', 'content' => 'lorem', 'likes' => 40]
];
print_r($posts2);
print_r($posts2[2]); //Array ( [title] => post three [author] => henry [content] => lorem [likes] => 40 )
echo $posts2[2]['author']; //Henry
//数组长度
echo count($posts2);
//数组末尾添加数据
$posts2[] = ['title' => 'post four', 'author' => 'Jeff', 'content' => 'lorem', 'likes' => 50];
print_r($posts2);
//删除数组末尾数据
$poped = array_pop($posts2);
print_r($poped);
?>
5. 布尔类型
布尔型可以是 或 false。通常用于条件判断。
//布尔值
echo true; //1
echo false; //空
五.php运算符
1. 算术运算符
- 加 + ,减 -,乘 *,除 /
- 取余 %
- 取反:~ , 按二进制位进行"取反"运算
- 并置:· , 如:"hello" · "world" => helloworld
混合运算法则:PEMDAS。即:P:计算括号内的,E:计算指数,MD:乘除法,AS:加减法
2. 递增 / 递减运算符
- 预递增 ++x,x 加 1,然后返回 x;
- 预递减 --x,x 减 1,然后返回 x;
- 后递增 x++,返回 x,然后 x 加 1;
- 后递减 x--,返回 x,然后 x 减 1;
<?php
$a = 10;
echo ++$a; //11
$b = 10;
echo --$b; //9
$c = 10;
echo $c++; //10
$d = 10;
echo $d--; //10
?>
3.简写运算
- +=,-=,*=
<?php
$age = 30;
$age = $age + 5;
$age += 5;
echo $age; //40
?>
常用number类型方法:
- floor() 向下取整
- ceil() 向上取整
- pi() 返回圆周率 //3.1415926535898
<?php
$pi = 3.14;
echo floor($pi); // 3
echo ceil($pi); //4
echo pi(); //3.1415926535898
?>
4.比较运算符
- x == y 等于。
- x === y 绝对等于。如果 x 等于 y,且它们类型相同,则返回 true
- x != y 不等于。
- x !== y 不绝对等于。
- x > y 大于。
- x < y 小于。
- x >= y 大于等于。
- x <= y 小于等于。
<?php
//比较运算符
echo 1 < 5; //1
echo 1 > 5; //
echo 1 ==5; //
echo 1 != 5; //1
echo 1 >= 5; //
echo 1 <= 5; //1
echo 'Summer' > 'lucy'; //1
echo 'Summer' < 'lucy';
echo 'Summer' < 'summer'; //1
echo 'summer' == 'summer'; //1
echo 'Summer' == 'summer'; //
echo 1 == '1'; //1
echo 1 === '1'; //
echo 1 === 1; //1
echo true == '1'; //1
echo false == ''; //1
echo true === '1'; //
?>
六. php 循环
循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。
1.for循环
如果提前确定循环执行的次数,可以使用for循环。
1).语法
for (初始值; 条件; 增量)
{
要执行的代码;
}
//模板
$posts = [post1, post2, post3, post4, ...];
for($i = 0; $i < count($posts); $i++) {
echo 'post template';
}
//例
for($i = 0; $i < count($posts); $i++) {
echo $posts[$i];
}
2. foreach循环
用于遍历数组。如果不知道数组长度,可以使用foreach循环。
1)语法
foreach ($array as $value)
{
要执行代码;
}
//模板
$posts = [post1, post2, post3, post4, ...];
foreach($posts as $post) {
echo 'post template';
}
//例
foreach($posts as $post) {
echo $post;
}
$products = [
['name' => 'apple', 'price' => 10],
['name' => 'peach', 'price' => 5],
['name' => 'mongo', 'price' => 15],
['name' => 'grape', 'price' => 20],
['name' => 'orange', 'price' => 8],
['name' => 'watermelon', 'price' => 4]
];
foreach($products as $product) {
echo $product['name'] . '-' . $product['price'];
}
3. while循环
只要指定的条件成立,则循环执行代码块。
1)语法
while (条件)
{
要执行的代码;
}
//例
$i = 0;
while($i < count($products)) {
echo $products[$i]['name'];
$i++;
}
4. do...while循环
do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。
do
{
要执行的代码;
}
while (条件);
//例
$i = 0;
do {
echo $products[$i]['name'] . '<br>';
$i++;
}
while($i < count($products));
5.html中使用for循环
<?php
$products = [
['name' => 'apple', 'price' => 10],
['name' => 'peach', 'price' => 5],
['name' => 'mongo', 'price' => 15],
['name' => 'grape', 'price' => 20],
['name' => 'orange', 'price' => 8],
['name' => 'watermelon', 'price' => 4]
];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<h1>Products</h1>
<ul>
<?php foreach($products as $product) { ?>
<h3><?php echo $product['name']?></h3>
<p><?php echo $product['price']?></p>
<?php } ?>
</ul>
<body>
</body>
</html>