PHP基础知识
一. 条件语句
条件语句用于根据不同条件执行不同动作。
1.if 语句
if 语句用于仅当指定条件成立时执行代码。
1)语法
if (条件){
条件成立时要执行的代码;
}
//例
<?php
//if条件语句
$age = 15;
if($age < 20) {
echo '满足条件';
}
?>
2.if...else语句
在条件成立时执行一块代码,条件不成立时执行另一块代码。
1)语法
if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
//例
<?php
//if...else语句
$age = 20;
if($age < 20) {
echo '满足条件';
}else {
echo '不满足条件';
}
?>
3. if...elseif...else语句
在若干条件之一成立时执行一个代码块。
1)语法
if (条件){
'if'条件成立时执行的代码;
}elseif (条件){
'elseif'条件成立时执行的代码;
}else{
条件不成立时执行的代码;
}
//例
<?php
//elseif条件语句
$age = 20;
if($age < 20) {
echo '满足if条件';
}elseif($age === 20) {
echo '满足elseif条件';
}else {
echo '不满足条件';
}
?>
4.break和continue
break和continue都是用来控制循环结构的,主要作用是停止循环。
break:用于跳出一个循环体或者完全结束一个循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码;break不仅可以结束其所在的循环,还可结束其外层循环。
<?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]
];
foreach($products as $product) {
if($product['name'] === "grape") {
break;
}
echo $product['name']; //apple peach mongo
}
?>
continue:中止(跳过)本次循环,开始下一次循环。即跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定。continue 只能在循环语句中使用。
<?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]
];
foreach($products as $product) {
if($product['price'] < 8) {
continue; //跳出本次循环,
}
echo $product['name']; //apple mongo grape orange
}
?>
5.switch语句
switch 语句用于根据多个不同条件执行不同动作。
1)语法
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
//例
<?php
$favcolor = 'red';
switch($favcolor) {
case "red":
echo "你喜欢的颜色是红色";
break;
case "blue":
echo "你喜欢的颜色是蓝色";
break;
case "green":
echo "你喜欢的颜色是绿色";
break;
default:
echo "你喜欢其他颜色";
}
?>
二.运算符
1.逻辑运算符
- x and y 与 如果 x 和 y 都为 true,则返回 true。
- x or y 或 如果 x 和 y 至少有一个为 true,则返回 true
- x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true
- x && y 与
- x || y 或
- ! x 非 如果 x 不为 true,则返回 true。
<?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]
];
foreach($products as $product) {
if($product['price'] > 10 && $product['price'] < 20) {
echo $product['name'] . '1 <br>';
}
if($product['price'] > 15 || $product['price'] < 10) {
echo $product['name'] . '2 <br>';
}
}
?>
三. php函数
PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 1000 个内建的函数。
1.php内建函数
2.php函数
- 函数名称以字母或下划线开头(不能以数字开头)
- 函数的名称应该提示出它的功能
- 函数是通过调用函数来执行的。
- 你可以在页面的任何位置调用函数
1)语法
//创建函数
function functionName()
{
// 要执行的代码
}
//调用函数
functionName();
2)传参
//函数
function sayHello($name) {
echo "$name world"; // hello world
}
sayHello('hello');
function formatProduct($product) {
echo "{$product['name']} need cost {$product['price']}";
}
formatProduct(['name' => 'apple', 'price' => 10]);
3)返回值
如需让函数返回一个值,请使用 return 语句。
<?php
//函数
function formatProduct($product) {
// echo "{$product['name']} need cost {$product['price']}";
return "{$product['name']} need cost {$product['price']}";
}
$formatted = formatProduct(['name' => 'apple', 'price' => 10]);
echo $formatted;
?>
4)设置参数默认值
可给形参设置参数默认值。
<?php
//函数
function sayHello($name = 'Hello') {
echo "$name world"; // 传参时:hello world,不传参时:Hello world
}
sayHello('hello');
?>
四. 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
- local
- global
- static
- parameter
1. 局部变量
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php
//局部变量
function myFunc() {
$price = 20;
echo $price; // 20
}
myFunc();
echo $price; //报错 Warning: Undefined variable $price
function myFunc2($age) {
echo $age;
}
myFunc2(20);
echo $age; //报错 Warning: Undefined variable $age
?>
2. 全局变量
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问。
global 关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字。
<?php
//全局变量
$name = 'henry';
function sayHello() {
echo "Hello $name"; //Warning: Undefined variable $name
}
sayHello();
?>
通过global关键字将变量设为全局变量。
<?php
//全局变量
$name = 'henry';
function sayHello() {
global $name;
echo "Hello $name"; //Hello henry
}
sayHello();
?>
重新赋值。
<?php
//全局变量
$name = 'henry';
function sayHello() {
global $name;
$name = "Bob";
echo "Hello $name"; //Hello Bob
}
sayHello();
echo $name; //Bob
?>
局部变量的更改不会影响全局变量。
<?php
//全局变量
$name = 'henry';
function sayBye($name) {
$name = "Lucy";
echo "Byebye $name"; // Byebye Lucy
}
sayBye($name);
echo $name; //henry
?>
& 引用。
<?php
//全局变量
$name = 'henry';
function sayBye(&$name) {
$name = "Lucy";
echo "Byebye $name"; // Byebye Lucy
}
sayBye($name);
echo $name; //Lucy
?>
五. include和require
include 和 require 用于引入文件;除了处理错误的方式不同之外,在其他方面都是相同的。
- require 加载文件失败,会生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
- include 加载文件失败,会生成一个警告(E_WARNING),在错误发生后脚本会继续执行。
1. 语法
include 'filename';
或
include('filename');
require 'filename';
或
require('filename');
示例:
新建test.php文件:
<?php
$test = ['test1','test2','test3'];
echo $test[2] . '<br>';
?>
引入test.php文件:
<?php
//include 和 require
include('file/test.php');
require('file/test.php');
echo 'end of php';
?>
结果显示:
test3
test3
end of php
常用于模块化。
例如:新建test.php
<?php
echo '欢迎您 初学者!!!';
?>
引入:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>include 和 require</title>
</head>
<body>
<h1><?php include('file/test.php')?></h1>
<h1><?php include('file/test.php')?></h1>
<h1><?php include('file/test.php')?></h1>
</body>
</html>
显示结果:
