您现在的位置是:首页 >技术交流 >2月第七讲:PHP从入门到精通网站首页技术交流
2月第七讲:PHP从入门到精通
一、PHP 简介
PHP(Hypertext Preprocessor)即 “超文本预处理器”,是一种通用开源脚本语言。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。用 PHP 做出的动态页面与其他的编程语言相比,PHP 是将程序嵌入到 HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成 HTML 标记的 CGI 要高许多;PHP 还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
二、PHP 安装与配置
(一)Windows 环境
- 下载安装包:可以从 PHP 官方网站
- Windows 系统的 PHP 安装包。建议选择最新的稳定版本。
- 解压安装包:将下载的压缩包解压到你希望安装 PHP 的目录,例如C:php。
- 配置环境变量:打开 “系统属性” -> “高级” -> “环境变量”,在 “系统变量” 中找到 “Path” 变量,点击 “编辑”,在变量值的末尾添加;C:php(假设你的 PHP 安装目录是C:php)。
- 配置 php.ini:在 PHP 安装目录中找到php.ini-development或php.ini-production文件,复制一份并改名为php.ini。用文本编辑器打开php.ini,找到并修改以下配置:
-
- extension_dir = "ext":确保该路径指向 PHP 的扩展目录,默认是ext目录。
-
- 开启需要的扩展,例如extension=mysqli用于开启 MySQLi 扩展。去掉前面的分号即可开启。
(二)Linux 环境(以 Ubuntu 为例)
- 更新软件源:打开终端,执行sudo apt update。
- 安装 PHP:执行sudo apt install php,这会安装 PHP 的基本包。如果需要安装特定版本,例如 PHP 7.4,可以执行sudo apt install php7.4。
- 安装扩展:例如安装 MySQLi 扩展,执行sudo apt install php-mysql。
- 配置 PHP:PHP 配置文件位于/etc/php/[版本号]/apache2/php.ini(如果是通过 Apache 服务器运行 PHP),可以使用sudo nano /etc/php/[版本号]/apache2/php.ini进行编辑。
三、PHP 基础语法
(一)PHP 标记
PHP 代码需要包含在特定的标记内,以便服务器识别。常见的标记有:
- 标准标记:
<?php
// 这里写PHP代码
?>
- 短标记(需要在php.ini中开启short_open_tag = On):
<?
// 这里写PHP代码
?>
不建议在生产环境中使用短标记,因为它可能会与 XML 代码冲突。
(二)注释
- 单行注释:使用//,例如:
// 这是一行注释
- 多行注释:使用/* */,例如:
/*
这是一段
多行注释
*/
(三)变量
- 变量声明:PHP 中变量以$符号开头,后面跟变量名。变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。例如:
$name = "John";
$age = 30;
- 变量类型:PHP 是一种弱类型语言,变量类型会根据赋值自动转换。常见的变量类型有:
-
- 字符串:用单引号或双引号括起来,例如$str1 = 'Hello';和$str2 = "World";。双引号字符串支持变量解析,例如$message = "My name is $name";。
-
- 整数:例如$num = 10;。
-
- 浮点数:例如$float_num = 3.14;。
-
- 布尔值:true或false,例如$is_valid = true;。
-
- 数组:可以存储多个值的变量,例如$colors = array("red", "green", "blue");或$colors = ["red", "green", "blue"];(PHP 5.4+)。
-
- 对象:用于面向对象编程,例如:
class Person {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
$person = new Person("John");
- NULL:表示变量没有值,例如$var = NULL;。
(四)常量
- 定义常量:使用define()函数,例如:
define("PI", 3.14159);
常量一旦定义,在脚本执行期间不能被重新定义或取消定义。常量名通常使用大写字母。
2. 魔术常量:PHP 有一些预定义的魔术常量,它们的值会根据上下文自动变化。例如__FILE__表示当前文件的路径,__LINE__表示当前行号。
echo "当前文件是: ". __FILE__. "<br>";
echo "当前行号是: ". __LINE__;
四、PHP 运算符
(一)算术运算符
- 加法:+,例如$a = 5 + 3;
- 减法:-,例如$a = 5 - 3;
- 乘法:*,例如$a = 5 * 3;
- 除法:/,例如$a = 5 / 3;(结果是浮点数)
- 取模:%,例如$a = 5 % 3;(结果是 2)
- 自增:++,例如$a = 5; $a++;(先使用(a的值,再自增1)和`++)a;`(先自增 1,再使用 $a 的值)
- 自减:--,例如$a = 5; $a--;(先使用(a的值,再自减1)和`--)a;`(先自减 1,再使用 $a 的值)
https://m.tooopen.com/search/%E5%90%8D%E4%BC%98%E9%A6%86%E7%BD%91%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E6%B5%B7%E8%A7%92%E7%A4%BE%E5%8C%BA%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E8%89%B3%E6%AF%8D%E7%BD%91%E8%BF%9B%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E6%9E%9C%E5%86%BB%E4%BC%A0%E5%AA%92%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E6%9E%9C%E5%86%BB%E4%BC%A0%E5%AA%92%E8%BF%9B23Y4.com%E7%9C%8B.html?b30a
https://m.tooopen.com/search/%E6%80%A7%E5%B7%B4%E5%85%8B%E8%BF%9B%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E7%88%B1%E5%A8%81%E5%A5%B6%E7%BD%91%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E7%A6%81%E6%BC%AB%E5%A4%A9%E5%A0%82%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E6%92%B8%E6%92%B8%E7%A4%BE%E7%BD%91%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E6%8A%96%E9%98%B4%E4%B8%8B%E8%BD%BD%E3%80%8A23Y4.com%E3%80%8B.html?b30a
https://m.tooopen.com/search/%E6%8A%96%E9%98%B4%E7%BD%91%E7%AB%99%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E4%B9%85%E4%B9%85%E7%83%AD%E7%9C%8B%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E4%B9%85%E4%B9%85%E7%83%AD%E8%BF%9B%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E6%92%B8%E6%92%B8%E7%A4%BE%E8%BF%9B%E3%80%9023Y4.com%E3%80%91.html?b30a
https://m.tooopen.com/search/%E4%B8%8B%E8%BD%BD%E6%8A%96%E9%98%B4%E3%80%9023Y4.com%E3%80%91.html?b30a
(二)比较运算符
- 等于:==,比较值是否相等,例如$a = 5; $b = "5"; $a == $b;(结果是 true,因为只比较值)
- 全等:===,比较值和类型是否都相等,例如$a = 5; $b = "5"; $a === $b;(结果是 false,因为类型不同)
- 不等于:!=或<>,例如$a = 5; $b = 3; $a!= $b;(结果是 true)
- 不全等:!==,例如$a = 5; $b = "5"; $a!== $b;(结果是 true)
- 大于:>,例如$a = 5; $b = 3; $a > $b;(结果是 true)
- 小于:<,例如$a = 5; $b = 3; $a < $b;(结果是 false)
- 大于等于:>=,例如$a = 5; $b = 5; $a >= $b;(结果是 true)
- 小于等于:<=,例如$a = 5; $b = 5; $a <= $b;(结果是 true)
(三)逻辑运算符
- 与:&&或and,例如$a = true; $b = false; $a && $b;(结果是 false)
- 或:||或or,例如$a = true; $b = false; $a || $b;(结果是 true)
- 非:!,例如$a = true;!$a;(结果是 false)
- 异或:xor,例如$a = true; $b = false; $a xor $b;(结果是 true)
(四)赋值运算符
- 基本赋值:=,例如$a = 5;
- 复合赋值:
-
- 加法赋值:+=,例如$a = 5; $a += 3;(相当于$a = $a + 3;,结果 $a 为 8)
-
- 减法赋值:-=,例如$a = 5; $a -= 3;(相当于$a = $a - 3;,结果 $a 为 2)
-
- 乘法赋值:*=,例如$a = 5; $a *= 3;(相当于$a = $a * 3;,结果 $a 为 15)
-
- 除法赋值:/=,例如$a = 5; $a /= 3;(相当于$a = $a / 3;,结果 $a 为 1.6666666666667)
-
- 取模赋值:%=,例如$a = 5; $a %= 3;(相当于$a = $a % 3;,结果 $a 为 2)
五、PHP 流程控制
(一)条件语句
- if 语句:
$age = 20;
if ($age >= 18) {
echo "你是成年人";
}
- if - else 语句:
$age = 15;
if ($age >= 18) {
echo "你是成年人";
} else {
echo "你是未成年人";
}
- if - else if - else 语句:
$score = 85;
if ($score >= 90) {
echo "优秀";
} else if ($score >= 80) {
echo "良好";
} else if ($score >= 60) {
echo "及格";
} else {
echo "不及格";
}
- switch 语句:
$day = 3;
switch ($day) {
case 1:
echo "星期一";
break;
case 2:
echo "星期二";
break;
case 3:
echo "星期三";
break;
default:
echo "其他";
}
(二)循环语句
- for 循环:
for ($i = 1; $i <= 10; $i++) {
echo $i. " ";
}
- while 循环:
$i = 1;
while ($i <= 10) {
echo $i. " ";
$i++;
}
- do - while 循环:
$i = 1;
do {
echo $i. " ";
$i++;
} while ($i <= 10);
- foreach 循环(用于数组和对象):
$colors = ["red", "green", "blue"];
foreach ($colors as $color) {
echo $color. " ";
}
对于关联数组:
$person = ["name" => "John", "age" => 30];
foreach ($person as $key => $value) {
echo $key. ": ". $value. "<br>";
}
六、PHP 函数
(一)内置函数
PHP 提供了大量的内置函数,涵盖字符串处理、数学运算、文件操作、数据库操作等各个方面。
- 字符串函数:
-
- strlen():计算字符串长度,例如$str = "Hello World"; $len = strlen($str);(结果 $len 为 11)
-
- strtoupper():将字符串转换为大写,例如$str = "hello"; $upper_str = strtoupper($str);(结果 $upper_str 为 "HELLO")
-
- strtolower():将字符串转换为小写,例如$str = "HELLO"; $lower_str = strtolower($str);(结果 $lower_str 为 "hello")
-
- substr():截取字符串,例如$str = "Hello World"; $sub_str = substr($str, 0, 5);(结果 $sub_str 为 "Hello")
- 数学函数:
-
- sqrt():计算平方根,例如$num = 16; $sqrt_num = sqrt($num);(结果 $sqrt_num 为 4)
-
- abs():计算绝对值,例如$num = -5; $abs_num = abs($num);(结果 $abs_num 为 5)
-
- round():四舍五入,例如$num = 3.14159; $rounded_num = round($num, 2);(结果 $rounded_num 为 3.14)
- 文件操作函数:
-
- file_get_contents():读取文件内容,例如$content = file_get_contents("example.txt");
-
- file_put_contents():写入文件内容,例如$data = "This is some data"; file_put_contents("example.txt", $data);
-
- fopen():打开文件,例如$file = fopen("example.txt", "r");(以只读模式打开文件)
-
- fclose():关闭文件,例如fclose($file);
(二)自定义函数
- 函数定义:
function add_numbers($a, $b) {
return $a + $b;
}
$sum = add_numbers(3, 5);
echo $sum;
- 函数参数:
-
- 必需参数:如上面的add_numbers函数中的$a和$b。
-
- 默认参数:可以为参数设置默认值,例如:
function greet($name = "Guest") {
echo "Hello, ". $name;
}
greet(); // 输出 "Hello, Guest"
greet("John"); // 输出 "Hello, John"
- 可变参数:使用...语法,例如:
function sum(...$numbers) {
$total = 0;
foreach ($numbers as $num) {
$total += $num;
}
return $total;
}
$sum_result = sum(1, 2, 3, 4, 5);
echo $sum_result;
七、PHP 数组
(一)数组创建
- 索引数组:
$colors = array("red", "green", "blue");
// 或者
$colors = ["red", "green", "blue"];
- 关联数组:
$person = array("name" => "John", "age" => 30, "city" => "New York");
// 或者
$person = ["name" => "John", "age" => 30, "city" => "New York"];
(二)数组访问
- 索引数组访问:
$colors = ["red", "green", "blue"];
echo $colors[0]; // 输出 "red"
- 关联数组访问:
$person = ["name" => "John", "age" => 30, "city" => "New York"];
echo $person["name"]; // 输出 "John"
(三)数组操作函数
- 添加元素:
-
- 索引数组:使用[]语法,例如$colors = ["red", "green"]; $colors[] = "blue";
-
- 关联数组:例如$person = ["name" => "John"]; $person["age"] = 30;
- 删除元素:使用unset()函数,例如$colors = ["red", "green", "blue"]; unset($colors[1]);
- 数组排序:
-
- 升序排序:sort()函数用于索引数组,asort()函数用于关联数组,例如$numbers = [5, 3, 8, 1]; sort($numbers);
-
- 降序排序:rsort()函数用于索引数组,arsort()函数用于关联数组,例如 `$numbers = [5, 3, 8, 1]; r