PHP编程基础入门:从脚本结构到函数应用
立即解锁
发布时间: 2025-08-17 00:34:02 阅读量: 25 订阅数: 16 AIGC 


PHP与MySQL网络编程实用指南
### PHP编程基础入门:从脚本结构到函数应用
#### 1. PHP脚本结构
PHP脚本块由一系列PHP语句组成,以`<?php`开头,以`?>`结尾,其中`php`大小写均可。文件扩展名为`php`的文件不一定只包含一个PHP脚本块,也可能部分是PHP代码,甚至没有PHP代码,这与其他编程语言不同。
一个PHP文件可以是单个PHP脚本块,也可以全是HTML,更常见的是PHP语句块和HTML行交替出现,但PHP脚本块不能嵌套。“PHP脚本”和“PHP脚本块”在功能上无差异,文件全是PHP代码时用“脚本”合适,只有几行PHP代码时用“脚本块”更合适。
- **空白行和布局**:PHP脚本中的空白行被忽略,语句中可使用制表符和空格来提高可读性,但不能用于变量、数组、函数名或系统关键字内部。
- **注释**:PHP脚本支持两种注释:
- 单行注释:使用`//`或`#`开头,其后内容为注释。
- 多行注释:以`/*`开头,以`*/`结尾。
示例:
```php
<?php
// 这是单行注释
/*
这是多行注释
可以跨越多行
*/
?>
```
#### 2. 混合PHP文件的处理过程
当浏览器访问包含HTML和PHP的混合文件时,会按以下顺序处理:
1. 若文件以HTML文本开头,直到下一个`<?php`标签前的内容会原样传递给浏览器并显示。
2. 遇到`<?php`标签后,标签间的内容被视为PHP语句,依次执行。执行结果(如打印语句)会作为HTML传递给浏览器。
3. 遇到闭合的`?>`标签后,后续内容又被视为HTML,直到下一个`<?php`标签。
4. 处理完成后,浏览器以网页形式显示接收到的HTML(包括PHP生成的部分)。
```mermaid
graph TD;
A[开始] --> B{是否为HTML文本};
B -- 是 --> C[原样传递到浏览器显示];
B -- 否 --> D{是否为<?php标签};
D -- 是 --> E[执行PHP语句];
E --> F{是否为?>标签};
F -- 是 --> B;
F -- 否 --> E;
C --> D;
E --> G[将结果作为HTML传递到浏览器];
G --> F;
```
#### 3. PHP基本组件
PHP的基本构建块包括常量和变量,还有预编写的系统函数,可方便执行复杂操作。
#### 4. 变量
变量是计算机内存中用于存储值的部分,在PHP中,变量名必须以`$`开头,后面可跟一个或多个大小写字母、数字和下划线,但`$`后首个字符不能是数字。
变量可通过赋值语句赋值,如:
```php
$x = 27.4;
$x = $x + 100;
```
变量的使用方式有:
- 通过打印语句将变量值发送到浏览器。
- 使用`If`语句测试变量值,根据结果执行不同操作。
- **未初始化变量**:引用未赋值的变量不会报错,若上下文需要数值,默认值为0;若需要字符串,默认值为空字符串`""`。
- **变量名大小写敏感**:`$Surname`和`$surname`是不同变量,应避免仅大小写不同的变量名,以免出错且难以排查。
- **变量类型**:PHP会自动识别变量类型,且变量类型可改变,这提供了灵活性,但也增加了出错风险。
- **数组**:数组是一种结构化变量,可存储多个值,使用单一变量名。数组元素通过方括号表示,编号从0开始。
示例:
```php
$info = array(-8.3, "dog", 27, "cat", true, 647.142);
echo $info[2]; // 输出27
```
- **可变变量**:PHP的可变变量会将一个变量的值作为另一个变量的名称。例如,若`$myvar`的值为`"val"`,`$val`的值为`27.3`,则`$$myvar`的值为`27.3`。为避免混淆,可写成`${$myvar}`。
#### 5. 常量
PHP中的主要常量类型有数字、字符串常量和逻辑值。
- **数字**:如`27`、`-8`、`57.36`和`7.6E−4`(表示`7.6*10−4`),`E`可小写。
- **字符串**:字符串可以用单引号或双引号括起来。
- **单引号**:内容就是所见即所得,单引号和非后跟单引号的反斜杠需转义。
- **双引号**:使用前会进行“求值”,包含转义序列,且引号内的变量名会被其值替换。
转义序列表:
| 转义序列 | 含义 |
| ---- | ---- |
| `\"` | 双引号 |
| `\\` | 单斜杠 |
| `\n` | 换行符 |
| `\r` | 回车符 |
| `\t` | 制表符 |
| `\$` | 美元符号 |
示例:
```php
$xyz = 123.4;
echo "abc$xyz"; // 输出abc123.4
```
- **逻辑常量**:有`TRUE`和`FALSE`,大小写任意。
#### 6. 函数
函数是编程语言的重要部分,可通过单条语句执行复杂操作。函数名规则与变量名类似,但无`$`开头,且函数名不区分大小写。函数使用时后跟零个、一个或多个变量、常量或表达式,用括号括起来,多个参数用逗号分隔。
示例:
```php
$x = sqrt($y + 2.4);
$min_val = min(10, 20);
```
函数调用可出现在常量可出现的任何位置,调用结果会替换函数及其参数。函数调用还可能引发其他操作,如写入文件或读取数据库。
系统函数(也叫内部函数或内置函数)在PHP中很常用,可参考相关文档获取更多信息。此外,PHP程序员还可自定义函数,以节省编写复杂程序的时间。
#### 7. 括号说明
PHP中使用三种括号:
- `()`:圆括号,用于函数等。
- `[]`:方括号,用于数组。
- `{}`:花括号,用于语句组。
#### 8. 引号组合
PHP中字符串可用单引号或双引号括起来,一些引号组合可能难以阅读和理解,常见组合的解释如下:
| 组合 | 通常解释 |
| ---- | ---- |
| `""` | 空字符串 |
| `"'"` | 双引号包含单引号 |
| `"\""` | 双引号包含反斜杠和双引号 |
| `''` | 空字符串 |
| `'\''` | 单引号包含反斜杠和单引号 |
#### 9. 实践练习
- **变量名有效性判断**:判断以下变量名是否有效,并说明原因:
- `$DoG`:有效,符合变量名规则。
- `$_abCDE_1234_`:有效,符合规则。
- `$happy-BIRTHDAY`:无效,包含非法字符`-`。
- `$27_Today`:无效,`$`后首个字符是数字。
- `john`:无效,缺少`$`符号。
- `$this_is_a_long_name_`:有效,符合规则。
- `$abc!_*xyz`:无效,包含非法字符`!`和`*`。
- **字符串输出结果**:假设`$xyz`的值为`296.4`,分析以下字符串打印结果:
- `'I live at 26 Queen\'s Road'`:输出`I live at 26 Queen's Road`。
- `'My name is John O'Brien'`:输出`My name is John O'Brien`。
- `'This is a backslash\\'`:输出`This is a backslash\`。
- `"I live at 26 Queen\'s Road"`:输出`I live at 26 Queen's Road`。
- `"My name is John O'Brien"`:输出`My name is John O'Brien`。
- `"This is a backslash\\"`:输出`This is a backslash\`。
- `"He said \"Hello\" to me"`:输出`He said "Hello" to me`。
- `"the value of the variable is $xyz"`:输出`the value of the variable is 296.4`。
- `"the value of the variable is $xyzpounds"`:由于PHP会将其解释为`$xyzpounds`,可能输出错误结果,若要正确输出,可写成`"the value of the variable is $xyz pounds"`。
- `"a strange string\n\n\t\t\n\t\tabc\$xyz $xyz here is a backslash\\"`:输出包含换行、制表符和变量值的字符串。
- **数字的不同写法**:`-487.316`还可写成:
- `-4.87316E2`
- `-487316E-3`
- `-0.487316E3`
- `-4873.16E-1`
- **函数名有效性判断**:判断以下函数名是否有效,并说明原因:
- `$DoG`:无效,函数名不能以`$`开头。
- `$_abCDE_1234_`:有效,符合函数名规则。
- `$happy-BIRTHDAY`:无效,包含非法字符`-`且以`$`开头。
- `$27_Today`:无效,以`$`开头且`$`后首个字符是数字。
- `john`:有效,符合规则。
- `$this_is_a_long_name_`:无效,以`$`开头。
- `$abc!_*xyz`:无效,包含非法字符`!`和`*`且以`$`开头。
- `Sqrt`、`SQRT`、`sqrt2`:有效,函数名不区分大小写。
- `happy-BIRTHDAY`:无效,包含非法字符`-`。
- `_abCDE_123456_`:有效,符合规则。
### PHP编程基础入门:从脚本结构到函数应用
#### 10. 总结回顾
前面详细介绍了PHP编程的多个基础方面。首先明确了PHP脚本的结构,它以`<?php`开头、`?>`结尾,文件中PHP和HTML可灵活组合。在脚本编写时,空白行被忽略,注释有单行和多行两种形式。
对于混合PHP文件的处理,浏览器会根据`<?php`和`?>`标签交替处理HTML和PHP内容。PHP的基本组件包括变量和常量,变量存储值,有多种类型,如标量变量、数组和可变变量;常量有数字、字符串和逻辑值等类型。
函数在PHP中非常重要,系统函数方便执行复杂操作,程序员还能自定义函数。同时,介绍了PHP中三种括号的用途和引号的不同组合含义。通过实践练习,我们能更好地掌握变量名、函数名的有效性判断以及字符串输出等知识。
#### 11. 深入理解变量和常量的应用场景
- **变量在数据处理中的应用**
在实际的PHP编程中,变量常用于存储和处理数据。例如,在一个用户信息管理系统中,我们可以使用变量来存储用户的姓名、年龄、地址等信息。
```php
$user_name = "John";
$user_age = 25;
$user_address = "123 Main St";
echo "用户姓名: ". $user_name. "<br>";
echo "用户年龄: ". $user_age. "<br>";
echo "用户地址: ". $user_address. "<br>";
```
这里,我们使用了三个变量来存储用户的基本信息,并通过`echo`语句将这些信息输出到浏览器。
- **常量在配置信息中的应用**
常量通常用于存储一些固定不变的值,如数据库连接信息、网站的基本配置等。
```php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "password");
define("DB_NAME", "my_database");
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$conn) {
die("数据库连接失败: ". mysqli_connect_error());
}
echo "数据库连接成功";
```
在这个例子中,我们使用`define`函数定义了四个常量,分别存储数据库的主机名、用户名、密码和数据库名。然后使用这些常量来建立数据库连接。
#### 12. 函数的高级应用
- **自定义函数的使用**
除了使用系统函数,我们还可以自定义函数来实现特定的功能。例如,我们可以定义一个函数来计算两个数的和。
```php
function add_numbers($num1, $num2) {
return $num1 + $num2;
}
$result = add_numbers(10, 20);
echo "两数之和为: ". $result;
```
在这个函数中,我们定义了一个名为`add_numbers`的函数,它接受两个参数`$num1`和`$num2`,并返回它们的和。然后我们调用这个函数并将结果输出。
- **函数的递归调用**
递归是指函数调用自身的过程。例如,我们可以使用递归函数来计算一个数的阶乘。
```php
function factorial($n) {
if ($n == 0) {
return 1;
} else {
return $n * factorial($n - 1);
}
}
$number = 5;
$result = factorial($number);
echo $number. "的阶乘是: ". $result;
```
在这个例子中,`factorial`函数调用自身来计算阶乘。当`$n`等于0时,函数返回1;否则,函数返回`$n`乘以`factorial($n - 1)`的结果。
#### 13. 引号和转义序列的实际应用
- **单引号和双引号在不同场景的选择**
在PHP中,单引号和双引号的使用场景有所不同。当字符串中不包含变量且不需要转义序列时,使用单引号可以提高性能。例如:
```php
$message = '这是一个简单的字符串';
echo $message;
```
当字符串中需要包含变量或使用转义序列时,使用双引号更方便。例如:
```php
$name = "John";
$message = "你好,$name!欢迎来到我们的网站。";
echo $message;
```
- **转义序列在字符串格式化中的应用**
转义序列可以用于格式化字符串,使其在浏览器中显示得更美观。例如,我们可以使用`\n`和`\t`来实现换行和制表符的效果。
```php
$text = "这是第一行\n\t这是第二行,缩进了一个制表符";
echo nl2br($text);
```
这里,`nl2br`函数将字符串中的换行符`\n`转换为HTML的`<br>`标签,使换行效果在浏览器中正常显示。
#### 14. 实践拓展
- **编写一个简单的用户登录验证脚本**
```php
// 模拟用户数据库
$users = array(
"user1" => "password1",
"user2" => "password2"
);
// 获取用户输入
$username = $_POST['username'];
$password = $_POST['password'];
// 验证用户输入
if (isset($users[$username]) && $users[$username] == $password) {
echo "登录成功!欢迎,". $username;
} else {
echo "用户名或密码错误,请重试。";
}
```
在这个脚本中,我们首先定义了一个模拟的用户数据库,存储了用户名和对应的密码。然后通过`$_POST`数组获取用户输入的用户名和密码,最后进行验证并输出相应的结果。
- **使用数组处理多个用户信息**
```php
$users = array(
array("name" => "John", "age" => 25, "address" => "123 Main St"),
array("name" => "Mary", "age" => 30, "address" => "456 Elm St")
);
foreach ($users as $user) {
echo "姓名: ". $user['name']. "<br>";
echo "年龄: ". $user['age']. "<br>";
echo "地址: ". $user['address']. "<br><br>";
}
```
这里,我们使用二维数组存储了多个用户的信息,并通过`foreach`循环遍历数组,输出每个用户的详细信息。
#### 15. 总结
通过以上内容,我们全面深入地学习了PHP编程的基础知识,包括脚本结构、变量、常量、函数、引号和转义序列等。通过实践练习和拓展,我们进一步掌握了这些知识的实际应用。希望这些内容能帮助你更好地理解和运用PHP进行编程开发。在后续的学习中,你可以继续探索PHP的更多高级特性,如面向对象编程、数据库操作等,不断提升自己的编程能力。
以下是一个简单的流程图,展示了用户登录验证的流程:
```mermaid
graph TD;
A[开始] --> B[获取用户输入的用户名和密码];
B --> C{用户名是否存在于数据库};
C -- 是 --> D{密码是否匹配};
C -- 否 --> E[输出用户名或密码错误];
D -- 是 --> F[输出登录成功];
D -- 否 --> E;
E --> G[结束];
F --> G;
```
通过这个流程图,我们可以更清晰地看到用户登录验证的逻辑流程。在实际开发中,我们可以根据这个流程来编写相应的代码,确保用户登录功能的正确性和安全性。
0
0
复制全文
相关推荐









