前言
上文我们已经通过 Apache 服务器和 PHP 内置服务器启动项目,可以编写我们的代码了,这篇文章我们就 PHP 的语法进行一个详细的说明
PHP 代码通常放在<?php
和?>
标签之间。PHP 是一种解释型语言,不需要编译。
上文入口
正文开始
,如果觉得文章对您有帮助,请帮我三连+订阅,谢谢
💖💖💖
输出指令: echo 和 print。
echo
可以输出多个字符,速度比print
快,无返回值。print
只能输出单个字符,返回值总为 1。
<?php
echo "123", "", "456";
?>
注释
- 单行注释使用
//
。 - 多行注释使用
/* ... */
。
<?php
// 这是 PHP 单行注释
/*
这是
PHP 多行
注释
*/
?>
变量和数据类型
在 PHP 中,变量以美元符号$
开头,随后是变量名。
- 整型(Integer):如
$age = 25;
- 浮点型(Float):如
$price = 19.99;
- 字符串(String):如
$name = "ziyu";
- 布尔型(Boolean):
true
或false
- 数组(Array):如
$colors = ["red", "green", "blue"];
- NULL:表示没有值
常量
常量使用 define()
定义或 const
声明,名称通常全部大写。
<?php
define("GREETING", "Hello, World!");
echo GREETING;
// or
const NAME= "PHP";
运算符
PHP 支持多种运算符,包括:
- 算术运算符:
+
,-
,*
,/
,%
- 赋值运算符:
=
- 比较运算符:
==
,===
,!=
,!==
,<
,>
,<=
,>=
,<=>
- 逻辑运算符:
and
,or
,xor
,!
- 位运算符:
&
,|
,^
,<<
,>>
控制结构
- if 语句:用于条件判断。
- switch 语句:用于多条件分支。
- for 循环:用于已知次数的循环。
- while 循环:用于条件满足时的循环。
- do-while 循环:先执行一次循环体,再判断条件。
<?php
$score = 85;
if ($score >= 90) {
echo "优秀";
} elseif ($score >= 80) {
echo "良好";
} else {
echo "及格";
}
// switch
$favcolor="red";
switch ($favcolor)
{
case "red":
echo "你喜欢的颜色是红色!";
break;
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
// for循环
for ($i = 0; $i < 5; $i++) {
echo "循环 " . $i;
}
// while循环
$j = 0;
while ($j < 5) {
echo "循环 " . $j;
$j++;
}
数组
- 创建数组
PHP 提供了多种创建数组的方法,包括索引数组和关联数组。
<?php
// 索引数组
$fruits = ["apple", "banana", "cherry"];
// 关联数组
$person = [
"name" => "ziyu",
"age" => 25,
"isAI" => true
];
- 访问数组元素
使用方括号[]
来访问数组中的元素。
<?php
echo $fruits[0]; // 输出: apple
echo $person["name"]; // 输出: ziyu
- 修改数组元素
可以直接通过索引或键来修改数组元素的值。
<?php
$fruits[1] = "blueberry";
$person["age"] = 26;
- 数组长度
使用count()
函数来获取数组中元素的数量。
<?php
echo count($fruits); // 输出: 3
- 数组遍历
使用foreach
循环来遍历数组中的每个元素。
<?php
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
- 多维数组
多维数组是包含其他数组的数组,可以想象为矩阵或表格。
<?php
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
echo $matrix[1][2]; // 输出: 6
- 数组函数
PHP 提供了许多内置函数来操作数组,如array_merge()
,in_array()
,array_keys()
,array_values()
等。
<?php
// 合并数组
$merged = array_merge($fruits, ["orange", "mango"]);
// 检查元素是否存在
$exists = in_array("banana", $fruits); // 输出: true
$_keys = array_keys($fruits);
$_values = array_values($fruits);
字符串操作
- 创建字符串
使用单引号、双引号或 heredoc 来创建字符串。
<?php
$string1 = 'This is a string in single quotes.';
$string2 = "This is a string in double quotes.";
$string3 = <<<EOT
This is a heredoc string.
It can span multiple lines.
EOT;
- 字符串连接
使用点运算符.
来连接字符串。
<?php
$greeting = "Hello, ";
$name = "ziyu";
$message = $greeting . $name . "!"; // 输出: Hello, ziyu!
-
字符串长度
使用
strlen()
函数来获取字符串的长度。
<?php
echo strlen($message); // 输出: 13
- 字符串截取
使用substr()
函数来截取字符串的一部分。
<?php
echo substr($message, 7, 5); // 输出: ziyu
- 查找子字符串
使用strpos()
来查找子字符串在字符串中的位置。
<?php
$position = strpos($message, "ziyu"); // 输出: 7
- 字符串比较
使用strcmp()
函数来比较两个字符串。
<?php
$result = strcmp("apple", "banana"); // 输出: -1 (apple < banana)
- 字符串替换
使用str_replace()
来替换字符串中的某些字符或子字符串。
<?php
$newMessage = str_replace("ziyu", "PHP Developer", $message); // 输出: Hello, PHP Developer!
- 字符串格式化
使用sprintf()
进行字符串格式化,类似于 C 语言的 printf 函数。
<?php
$formatted = sprintf("Hello, %s! Your score is %d.", "ziyu", 95);
- 正则表达式
PHP 支持正则表达式,用于复杂的字符串匹配和处理。
<?php
// 检查字符串是否匹配正则表达式
if (preg_match("/^[a-zA-Z]+/", "ziyu")) {
echo "Match!";
}
函数
-
定义函数
函数是一段可重用的代码块,用于执行特定的任务。在 PHP 中,你可以定义自己的函数来组织和简化代码。使用
function
关键字来定义一个函数,后跟函数名和一对圆括号,其中可以包含参数列表。函数体放在花括号中。
<?php
function sayHello() {
echo "Hello!";
}
function greet($name) {
echo "Hello, " . $name . "!";
}
sayHello(); // 输出: Hello!
greet("ziyu"); // 输出: Hello, ziyu!
- 参数和返回值
函数可以接收参数作为输入,并使用return
关键字返回值。
<?php
function add($a, $b) {
return $a + $b; // 返回两个数的和
}
$result = add(5, 10);
echo $result; // 输出: 15
- 作用域
变量的作用域指的是变量可以被访问的代码区域。在 PHP 中,函数内部定义的变量仅在该函数内部有效。
<?php
function getFullName($firstName, $lastName) {
$fullName = $firstName . " " . $lastName;
return $fullName;
}
echo getFullName("jia", "ziyu"); // 输出: jia ziyu
// $fullName 在这里不可用,因为它在函数内部定义
- 匿名函数(Lambda 函数)
PHP 支持匿名函数,它们可以用于简短的、一次性的函数定义。
<?php
$greet = function($name) {
echo "Hello, " . $name . "!";
};
$greet("ziyu"); // 输出: Hello, ziyu!
- 可变函数
PHP 允许你使用变量作为函数名,这称为可变函数。
<?php
$functionName = "greet";
$functionName("ziyu"); // 输出: Hello, ziyu!
- 递归函数
递归函数是调用自身的函数,常用于解决如阶乘、斐波那契数列等递归问题。
<?php
function factorial($n) {
if ($n == 0) {
return 1;
} else {
return $n * factorial($n - 1);
}
}
echo factorial(5); // 输出: 120
- 函数类型声明和返回类型声明
PHP 7 引入了类型声明,允许你指定函数参数和返回值的类型。
<?php
function add(int $a, int $b): int {
return $a + $b;
}
// 调用时必须传递两个整数
$result = add(5, "10"); // 将引发TypeError
通过本教程,你将掌握PHP的基础和高级特性,为你的Web开发之旅打下坚实的基础。现在,让我们开始编码吧!