PHP基础教程

掌握PHP编程的基础知识

PHP简介

PHP(PHP: Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适合于Web开发,可嵌入HTML中使用。与纯HTML网页不同,PHP网页在服务器上执行,然后将结果以纯HTML形式发送给浏览器。

PHP的特点

PHP的工作原理

  1. 浏览器向服务器发送HTTP请求
  2. 服务器识别PHP文件
  3. 服务器执行PHP代码
  4. 服务器返回生成的HTML
  5. 浏览器解析HTML并显示

注意:PHP代码在服务器端执行,客户端只能看到执行结果,无法看到原始PHP代码,这提高了网站的安全性。

PHP环境搭建

在开始PHP编程之前,需要搭建开发环境。最常见的PHP开发环境包括:

本地开发环境

安装XAMPP的步骤

  1. 访问XAMPP官网下载安装包
  2. 运行安装程序并按照向导进行安装
  3. 启动XAMPP控制面板
  4. 启动Apache和MySQL服务
  5. 在浏览器中访问http://localhost验证安装

PHP文件的创建和运行

创建一个简单的PHP文件并运行它:

  1. 在XAMPP的htdocs目录中创建一个test.php文件
  2. 在文件中添加以下代码:
<?php
    echo "Hello, World!";
?>
  1. 在浏览器中访问http://localhost/test.php查看结果

PHP基本语法

了解PHP的基本语法是学习PHP编程的第一步。

PHP标记

PHP代码需要放在特定的标记中,最常见的是:

<?php ... ?>

PHP语句

每个PHP语句必须以分号(;)结束:

<?php
    echo "Hello, World!";
    $x = 5;
    $y = 10;
    $sum = $x + $y;
?>

PHP注释

PHP支持单行和多行注释:

<?php
    // 这是单行注释
    
    /*
    这是
    多行注释
    */
    
    # 这也是单行注释
?>

PHP变量、数据类型与运算符

变量是存储数据的容器,PHP是一种弱类型语言,不需要声明变量类型。

变量的声明和使用

PHP变量以$符号开头,后面跟变量名:

<?php
    $name = "张三";
    $age = 25;
    $height = 1.75;
    
    echo "姓名:" . $name . "<br>";
    echo "年龄:" . $age . "岁<br>";
    echo "身高:" . $height . "米<br>";
?>

PHP的数据类型

PHP支持以下几种数据类型:

数据类型 描述 示例
String(字符串) 字符序列 $x = "Hello World";
Integer(整型) 整数 $x = 5;
Float(浮点型) 带小数点的数字 $x = 5.5;
Boolean(布尔型) 真或假 $x = true;
Array(数组) 存储多个值 $x = array("HTML","CSS","PHP");
Object(对象) 存储数据和方法 $x = new stdClass();
NULL(空值) 无值 $x = null;
Resource(资源) 特殊变量,指向外部资源 $x = fopen("file.txt", "r");

PHP运算符

PHP支持多种运算符:

算术运算符

<?php
    $a = 10;
    $b = 3;
    
    echo $a + $b; // 加法:13
    echo $a - $b; // 减法:7
    echo $a * $b; // 乘法:30
    echo $a / $b; // 除法:3.3333...
    echo $a % $b; // 取余:1
    echo $a ** $b; // 幂:1000
?>

比较运算符

<?php
    $a = 10;
    $b = 3;
    $c = "10";
    
    var_dump($a == $c);  // 等于:true(值相等)
    var_dump($a === $c); // 全等于:false(值相等但类型不同)
    var_dump($a != $b);  // 不等于:true
    var_dump($a <> $b);  // 不等于:true
    var_dump($a !== $c); // 不全等于:true
    var_dump($a > $b);   // 大于:true
    var_dump($a < $b);   // 小于:false
    var_dump($a >= $b);  // 大于等于:true
    var_dump($a <= $b);  // 小于等于:false
?>

逻辑运算符

<?php
    $a = true;
    $b = false;
    
    var_dump($a && $b); // 与:false
    var_dump($a || $b); // 或:true
    var_dump(!$a);      // 非:false
?>

控制结构

PHP支持各种控制结构,用于控制程序的执行流程。

条件语句

<?php
    $age = 20;
    
    // if语句
    if ($age >= 18) {
        echo "成年人";
    }
    
    // if-else语句
    if ($age >= 18) {
        echo "成年人";
    } else {
        echo "未成年人";
    }
    
    // if-elseif-else语句
    if ($age < 12) {
        echo "儿童";
    } elseif ($age < 18) {
        echo "青少年";
    } else {
        echo "成年人";
    }
    
    // switch语句
    switch ($age) {
        case 10:
            echo "10岁";
            break;
        case 20:
            echo "20岁";
            break;
        default:
            echo "其他年龄";
    }
?>

循环语句

<?php
    // for循环
    for ($i = 0; $i < 5; $i++) {
        echo $i . " ";
    }
    
    // while循环
    $i = 0;
    while ($i < 5) {
        echo $i . " ";
        $i++;
    }
    
    // do-while循环
    $i = 0;
    do {
        echo $i . " ";
        $i++;
    } while ($i < 5);
    
    // foreach循环(用于数组)
    $colors = array("红", "绿", "蓝");
    foreach ($colors as $color) {
        echo $color . " ";
    }
?>

PHP数组

数组是一种可以在单个变量中存储多个值的特殊变量。

数组的创建

<?php
    // 索引数组
    $fruits = array("苹果", "香蕉", "橙子");
    
    // 另一种创建索引数组的方法
    $vegetables = ["土豆", "胡萝卜", "白菜"];
    
    // 关联数组
    $age = array("张三" => 35, "李四" => 37, "王五" => 43);
    
    // 多维数组
    $cars = array(
        array("大众", 22, 18),
        array("宝马", 15, 13),
        array("奔驰", 5, 2)
    );
?>

访问数组元素

<?php
    // 访问索引数组
    echo $fruits[0]; // 输出:苹果
    
    // 访问关联数组
    echo $age["张三"]; // 输出:35
    
    // 访问多维数组
    echo $cars[0][0]; // 输出:大众
?>

常用数组函数

<?php
    $numbers = array(3, 5, 1, 9, 2);
    
    // 获取数组长度
    echo count($numbers); // 输出:5
    
    // 排序数组
    sort($numbers); // $numbers变为[1, 2, 3, 5, 9]
    
    // 反向排序
    rsort($numbers); // $numbers变为[9, 5, 3, 2, 1]
    
    // 检查元素是否存在
    var_dump(in_array(5, $numbers)); // 输出:bool(true)
    
    // 合并数组
    $array1 = array("a", "b");
    $array2 = array("c", "d");
    $result = array_merge($array1, $array2); // ["a", "b", "c", "d"]
?>