学习php心得
实习的时候,需要维护一个php项目,所以借此机会学习啦一下php的语法。
基础语法
1. PHP 标签
PHP 代码需要写在特定的标签内:
如果文件只包含 PHP 代码,建议省略结束标签 ?>,避免意外输出空白字符。
2. 向浏览器输出内容
echo:输出一个或多个字符串(常用)
print:输出一个字符串,返回值总是 1
1 2 3 4 5
| <?php echo "Hello, PHP!"; print "Welcome"; echo "<br>"; ?>
|
注意:每条语句必须以分号 ; 结尾。
3. 注释
4. 变量
- 所有变量以
$ 开头,后面跟变量名。
- 变量名区分大小写,只能包含字母、数字、下划线,且不能以数字开头。
1 2 3 4 5 6
| <?php $name = "张三"; $age = 25; $height = 1.75; $isStudent = true; ?>
|
5. 数据类型
PHP 支持以下基本数据类型:
- 字符串(string):单引号或双引号包围。双引号会解析变量。
- 整型(int)
- 浮点型(float)
- 布尔型(bool)
- 数组(array)
- 对象(object)
- NULL
- 资源(resource)
示例:
1 2 3 4 5
| <?php $str1 = '单引号字符串,变量 $name 不会被解析'; $str2 = "双引号字符串,变量 $name 会被解析为:$name"; echo $str2; ?>
|
6. 常量
一旦定义就无法修改或取消。使用 define() 或 const 关键字。
1 2 3 4 5 6
| <?php define("SITE_NAME", "我的网站"); const PI = 3.14159;
echo SITE_NAME; ?>
|
7. 运算符
| 类型 |
运算符示例 |
| 算术 |
+ - * / % |
| 赋值 |
= += -= *= /= .=(. 是字符串拼接) |
| 比较 |
== === != !== > < >= <= |
| 逻辑 |
`&& |
| 字符串 |
.(拼接) .=(拼接赋值) |
1 2 3 4 5 6 7 8 9 10
| <?php $a = 10; $b = 20; $sum = $a + $b; echo "结果:" . $sum;
$str = "Hello"; $str .= " World"; echo $str; ?>
|
8. 控制结构
8.1 条件语句
if…elseif…else
1 2 3 4 5 6 7 8 9 10
| <?php $score = 85; if ($score >= 90) { echo "优秀"; } elseif ($score >= 60) { echo "及格"; } else { echo "不及格"; } ?>
|
switch
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php $day = "Monday"; switch ($day) { case "Monday": echo "周一"; break; case "Friday": echo "周五"; break; default: echo "其他"; } ?>
|
8.2 循环
while 循环
1 2 3 4 5 6 7
| <?php $i = 1; while ($i <= 5) { echo "数字: $i <br>"; $i++; } ?>
|
for 循环
1 2 3 4 5
| <?php for ($i = 1; $i <= 5; $i++) { echo "当前是第 $i 次循环<br>"; } ?>
|
foreach 循环(专用于数组)
1 2 3 4 5 6
| <?php $colors = array("红", "绿", "蓝"); foreach ($colors as $color) { echo "颜色: $color<br>"; } ?>
|
9. 数组
PHP 中的数组实际上是有序映射,可以用作索引数组、关联数组或列表。
9.1 索引数组
1 2 3 4 5 6
| <?php $fruits = array("苹果", "香蕉", "橘子");
echo $fruits[0]; echo count($fruits); ?>
|
9.2 关联数组(键值对)
1 2 3 4
| <?php $student = array("name" => "李华", "age" => 18, "grade" => "A"); echo $student["name"]; ?>
|
9.3 遍历数组
1 2 3 4 5 6
| <?php $student = ["name"=>"李华", "age"=>18]; foreach ($student as $key => $value) { echo "$key : $value<br>"; } ?>
|
10. 函数
使用 function 关键字定义函数,支持参数和返回值。
1 2 3 4 5 6 7
| <?php function sayHello($name) { return "你好, " . $name; }
echo sayHello("王小明"); ?>
|
默认参数值
1 2 3 4 5 6 7
| <?php function multiply($a, $b = 2) { return $a * $b; } echo multiply(5); echo multiply(5, 3); ?>
|
11. 超级全局变量
PHP 内置了许多预定义变量,在任何作用域都可直接使用。常用的有:
$_GET:通过 URL 参数传递的数据(?name=Tom)
$_POST:通过 HTTP POST 方法传递的数据(如表单提交)
$_SERVER:服务器和执行环境信息
$_SESSION:会话变量
$_COOKIE:浏览器 Cookie
示例:处理表单提交
1 2 3 4 5
| <!-- form.html --> <form method="post" action="process.php"> 姓名: <input type="text" name="username"> <input type="submit"> </form>
|
1 2 3 4 5 6 7
| <?php
if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = htmlspecialchars($_POST["username"]); echo "欢迎, " . $name; } ?>
|
12. 包含文件
可以将重复的代码(如页头、页脚)保存到单独文件中,然后包含进来。
include:如果文件不存在,产生警告,脚本继续执行。
require:如果文件不存在,产生致命错误,脚本停止。
1 2 3 4 5
| <?php include 'header.php';
require 'footer.php'; ?>
|
13. 错误报告(开发阶段)
开发时建议开启所有错误提示:
1 2 3 4
| <?php error_reporting(E_ALL); ini_set('display_errors', 1); ?>
|
14. 一个完整的示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <!DOCTYPE html> <html> <head> <title>PHP 基础示例</title> </head> <body> <?php $name = "张三"; $age = 28; if ($age >= 18) { $status = "成年人"; } else { $status = "未成年人"; } echo "<h1>用户信息</h1>"; echo "<p>姓名: $name</p>"; echo "<p>年龄: $age</p>"; echo "<p>状态: $status</p>"; $hobbies = ["阅读", "游泳", "编程"]; echo "<p>爱好:</p><ul>"; foreach ($hobbies as $hobby) { echo "<li>$hobby</li>"; } echo "</ul>"; ?> </body> </html>
|
总结
这里我维护的项目比较老,使用的是php5.4,使用的变量都是弱引用类型的。