什么是PHP?
PHP(全称:PHP: Hypertext Preprocessor,即"PHP:超文本预处理器")是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。
PHP的主要特点
- 开源免费: PHP是开源软件,可以免费使用
- 跨平台: 可以在Windows、Linux、Unix等多种操作系统上运行
- 简单易学: 语法简单,入门门槛低
- 强大的数据库支持: 支持多种数据库,如MySQL、PostgreSQL、Oracle等
- 面向对象: 支持面向对象编程
- 丰富的函数库: 内置大量函数,方便开发
PHP的历史
PHP最初由Rasmus Lerdorf于1994年创建,最初只是一组用于维护个人主页的Perl脚本。后来用C语言重新编写,可以访问数据库,并能够构建简单的动态Web应用程序。
PHP的应用场景
- 网站开发: 创建动态网站和Web应用程序
- 命令行脚本: 编写命令行脚本执行系统任务
- 桌面应用程序: 使用PHP-GTK等工具开发桌面应用
- API开发: 创建RESTful API和Web服务
PHP环境搭建
要运行PHP程序,需要搭建PHP运行环境。主要有以下几种方式:
1. 集成环境(推荐新手)
- XAMPP: 包含Apache、PHP、MySQL的集成环境
- WAMP: Windows下的Apache、MySQL、PHP集成环境
- MAMP: Mac OS X下的Apache、MySQL、PHP集成环境
- Laragon: 轻量级的Windows PHP开发环境
2. 单独安装
可以分别安装Apache/Nginx、PHP和MySQL,适合有经验的开发者。
3. 在线环境
使用在线PHP编辑器,如PHP Sandbox、3v4l等,无需本地安装。
4. 使用Docker
使用Docker容器化部署PHP环境,便于环境管理和部署。
验证PHP安装
安装完成后,可以通过以下方式验证PHP是否正常工作:
<?php
phpinfo();
?>
将上述代码保存为info.php文件,放置在Web服务器的文档根目录中,然后通过浏览器访问该文件。如果显示PHP配置信息,说明PHP安装成功。
第一个PHP程序
让我们编写第一个简单的PHP程序,输出"Hello, World!"。
<?php
// 这是我的第一个PHP程序
echo "Hello, World!";
?>
代码解释
<?php和?>是PHP的起始和结束标签//表示单行注释echo是PHP的输出语句,用于向浏览器输出内容- 每条PHP语句以分号
;结尾
PHP标签类型
PHP支持多种标签格式:
// 标准标签(推荐)
<?php echo "Hello World"; ?>
// 短标签(需要开启short_open_tag)
<? echo "Hello World"; ?>
// 短标签带echo(需要开启short_open_tag)
<?= "Hello World" ?>
// ASP风格标签(不推荐,已弃用)
<% echo "Hello World"; %>
PHP文件结构
一个典型的PHP文件包含HTML和PHP代码的混合。
<!DOCTYPE html>
<html>
<head>
<title>PHP示例</title>
</head>
<body>
<?php
// PHP代码块
$name = "PHP学习者";
echo "<h1>欢迎, " . $name . "!</h1>";
?>
<p>这是一个包含PHP代码的HTML页面。</p>
</body>
</html>
纯PHP文件
如果文件中只包含PHP代码,可以省略结束标签?>,这有助于避免意外输出空白字符。
<?php
// 这是一个纯PHP文件
$message = "Hello World";
echo $message;
// 注意:这里没有结束标签
PHP注释
注释是代码中不会被执行的文本,用于解释代码的功能。PHP支持三种注释方式:
<?php
// 这是单行注释
# 这也是单行注释(不常用)
/*
这是多行注释
可以跨越多行
*/
/**
* 文档注释
* 通常用于函数和类的说明
*/
?>
注释的最佳实践
- 为复杂的算法或业务逻辑添加注释
- 注释应该解释"为什么"而不是"什么"
- 保持注释的更新,与代码同步
- 避免过度注释显而易见的代码
PHP输出方式
PHP有多种输出内容的方式:
1. echo
最常用的输出语句,可以输出一个或多个字符串。
<?php
echo "Hello World!";
echo "Hello", " ", "World!"; // 输出多个参数
?>
2. print
与echo类似,但只能输出一个字符串,且返回值为1。
<?php
print "Hello World!";
$result = print "Hello"; // $result的值为1
?>
3. printf
格式化输出函数,类似于C语言的printf。
<?php
$name = "张三";
$age = 25;
printf("姓名:%s,年龄:%d", $name, $age);
?>
4. print_r 和 var_dump
用于调试的输出函数,可以显示变量的结构信息。
<?php
$array = ["apple", "banana", "orange"];
// print_r - 以易于理解的方式打印变量
print_r($array);
// var_dump - 显示变量的类型和值
var_dump($array);
?>
输出缓冲
PHP支持输出缓冲,可以在发送内容到浏览器之前捕获输出。
<?php
// 开启输出缓冲
ob_start();
echo "Hello ";
echo "World!";
// 获取缓冲区内容并清空缓冲区
$content = ob_get_clean();
echo "捕获的内容: " . $content;
?>
PHP基本语法规则
大小写敏感性
- 变量名区分大小写
- 函数名、类名、关键字不区分大小写
<?php
// 变量区分大小写
$name = "张三";
$Name = "李四";
echo $name; // 输出 "张三"
echo $Name; // 输出 "李四"
// 函数不区分大小写
echo("Hello");
ECHO("World"); // 同样有效
?>
语句和分号
PHP中每条语句必须以分号;结尾,但PHP结束标签?>前的最后一条语句可以省略分号。
<?php
echo "第一行";
echo "第二行";
echo "最后一行" // 这里可以省略分号
?>
实践练习
尝试编写一个PHP程序,输出以下内容:
我的个人信息
姓名:李明
年龄:28
职业:Web开发者
今天是:2023年11月15日
<!DOCTYPE html>
<html>
<head>
<title>我的个人信息</title>
</head>
<body>
<?php
$name = "李明";
$age = 28;
$job = "Web开发者";
$today = date("Y年m月d日");
?>
<h1>我的个人信息</h1>
<p>姓名:<?php echo $name; ?></p>
<p>年龄:<?php echo $age; ?></p>
<p>职业:<?php echo $job; ?></p>
<p>今天是:<?php echo $today; ?></p>
</body>
</html>
常见错误和调试
常见语法错误
- 忘记分号
; - 忘记美元符号
$ - 引号不匹配
- 括号不匹配
- 使用未定义的变量
错误报告设置
<?php
// 开发环境 - 显示所有错误
error_reporting(E_ALL);
ini_set('display_errors', 1);
// 生产环境 - 关闭错误显示
error_reporting(0);
ini_set('display_errors', 0);
?>