探索PHP的奥秘:从基础到高级的全面指南

前言

上文我们已经通过 Apache 服务器和 PHP 内置服务器启动项目,可以编写我们的代码了,这篇文章我们就 PHP 的语法进行一个详细的说明
PHP 代码通常放在<?php?>标签之间。PHP 是一种解释型语言,不需要编译。
上文入口

在这里插入图片描述

正文开始如果觉得文章对您有帮助,请帮我三连+订阅,谢谢💖💖💖


输出指令: echo 和 print。

  • echo 可以输出多个字符,速度比 print 快,无返回值。
  • print 只能输出单个字符,返回值总为 1。
<?php
echo "123", "", "456";
?>

注释

  • 单行注释使用 //
  • 多行注释使用 /* ... */
<?php
// 这是 PHP 单行注释

/*
这是
PHP 多行
注释
*/
?>

变量和数据类型

在 PHP 中,变量以美元符号$开头,随后是变量名。

  • 整型(Integer):如$age = 25;
  • 浮点型(Float):如$price = 19.99;
  • 字符串(String):如$name = "ziyu";
  • 布尔型(Boolean):truefalse
  • 数组(Array):如$colors = ["red", "green", "blue"];
  • NULL:表示没有值

常量

常量使用 define() 定义或 const 声明,名称通常全部大写。

<?php
define("GREETING", "Hello, World!");
echo GREETING;

// or
const NAME= "PHP";

运算符

PHP 支持多种运算符,包括:

  • 算术运算符:+, -, *, /, %
  • 赋值运算符:=
  • 比较运算符:==, ===, !=, !==, <, >, <=, >= , <=>
  • 逻辑运算符:and, or, xor, !
  • 位运算符:&, |, ^, <<, >>

控制结构

  • if 语句:用于条件判断。
  • switch 语句:用于多条件分支。
  • for 循环:用于已知次数的循环。
  • while 循环:用于条件满足时的循环。
  • do-while 循环:先执行一次循环体,再判断条件。
<?php
$score = 85;

if ($score >= 90) {
    echo "优秀";
} elseif ($score >= 80) {
    echo "良好";
} else {
    echo "及格";
}
// switch
$favcolor="red";
switch ($favcolor)
{
case "red":
    echo "你喜欢的颜色是红色!";
    break;
case "blue":
    echo "你喜欢的颜色是蓝色!";
    break;
case "green":
    echo "你喜欢的颜色是绿色!";
    break;
default:
    echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>

// for循环
for ($i = 0; $i < 5; $i++) {
    echo "循环 " . $i;
}

// while循环
$j = 0;
while ($j < 5) {
    echo "循环 " . $j;
    $j++;
}

数组

  • 创建数组
    PHP 提供了多种创建数组的方法,包括索引数组和关联数组。
<?php
// 索引数组
$fruits = ["apple", "banana", "cherry"];

// 关联数组
$person = [
    "name" => "ziyu",
    "age" => 25,
    "isAI" => true
];
  • 访问数组元素

使用方括号[]来访问数组中的元素。

<?php
echo $fruits[0]; // 输出: apple
echo $person["name"]; // 输出: ziyu
  • 修改数组元素
    可以直接通过索引或键来修改数组元素的值。
<?php
$fruits[1] = "blueberry";
$person["age"] = 26;
  • 数组长度
    使用count()函数来获取数组中元素的数量。
<?php
echo count($fruits); // 输出: 3
  • 数组遍历
    使用foreach循环来遍历数组中的每个元素。
<?php
foreach ($fruits as $fruit) {
    echo $fruit . "\n";
}
  • 多维数组
    多维数组是包含其他数组的数组,可以想象为矩阵或表格。
<?php
$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

echo $matrix[1][2]; // 输出: 6
  • 数组函数
    PHP 提供了许多内置函数来操作数组,如array_merge(), in_array(), array_keys(), array_values()等。
<?php
// 合并数组
$merged = array_merge($fruits, ["orange", "mango"]);

// 检查元素是否存在
$exists = in_array("banana", $fruits); // 输出: true

$_keys = array_keys($fruits);

$_values = array_values($fruits);

字符串操作

  • 创建字符串
    使用单引号、双引号或 heredoc 来创建字符串。
<?php
$string1 = 'This is a string in single quotes.';
$string2 = "This is a string in double quotes.";
$string3 = <<<EOT
This is a heredoc string.
It can span multiple lines.
EOT;
  • 字符串连接
    使用点运算符.来连接字符串。
<?php
$greeting = "Hello, ";
$name = "ziyu";
$message = $greeting . $name . "!"; // 输出: Hello, ziyu!
  • 字符串长度

    使用strlen()函数来获取字符串的长度。

<?php
echo strlen($message); // 输出: 13
  • 字符串截取
    使用substr()函数来截取字符串的一部分。
<?php
echo substr($message, 7, 5); // 输出: ziyu
  • 查找子字符串
    使用strpos()来查找子字符串在字符串中的位置。
<?php
$position = strpos($message, "ziyu"); // 输出: 7
  • 字符串比较
    使用strcmp()函数来比较两个字符串。
<?php
$result = strcmp("apple", "banana"); // 输出: -1 (apple < banana)
  • 字符串替换
    使用str_replace()来替换字符串中的某些字符或子字符串。
<?php
$newMessage = str_replace("ziyu", "PHP Developer", $message); // 输出: Hello, PHP Developer!
  • 字符串格式化
    使用sprintf()进行字符串格式化,类似于 C 语言的 printf 函数。
<?php
$formatted = sprintf("Hello, %s! Your score is %d.", "ziyu", 95);
  • 正则表达式
    PHP 支持正则表达式,用于复杂的字符串匹配和处理。
<?php
// 检查字符串是否匹配正则表达式
if (preg_match("/^[a-zA-Z]+/", "ziyu")) {
    echo "Match!";
}

函数

  • 定义函数

    函数是一段可重用的代码块,用于执行特定的任务。在 PHP 中,你可以定义自己的函数来组织和简化代码。使用function关键字来定义一个函数,后跟函数名和一对圆括号,其中可以包含参数列表。函数体放在花括号中。

<?php
function sayHello() {
    echo "Hello!";
}

function greet($name) {
    echo "Hello, " . $name . "!";
}

sayHello(); // 输出: Hello!
greet("ziyu"); // 输出: Hello, ziyu!
  • 参数和返回值
    函数可以接收参数作为输入,并使用return关键字返回值。
<?php
function add($a, $b) {
    return $a + $b; // 返回两个数的和
}

$result = add(5, 10);
echo $result; // 输出: 15
  • 作用域
    变量的作用域指的是变量可以被访问的代码区域。在 PHP 中,函数内部定义的变量仅在该函数内部有效。
<?php
function getFullName($firstName, $lastName) {
    $fullName = $firstName . " " . $lastName;
    return $fullName;
}

echo getFullName("jia", "ziyu"); // 输出: jia ziyu
// $fullName 在这里不可用,因为它在函数内部定义
  • 匿名函数(Lambda 函数)
    PHP 支持匿名函数,它们可以用于简短的、一次性的函数定义。
<?php
$greet = function($name) {
    echo "Hello, " . $name . "!";
};

$greet("ziyu"); // 输出: Hello, ziyu!
  • 可变函数
    PHP 允许你使用变量作为函数名,这称为可变函数。
<?php
$functionName = "greet";
$functionName("ziyu"); // 输出: Hello, ziyu!
  • 递归函数
    递归函数是调用自身的函数,常用于解决如阶乘、斐波那契数列等递归问题。
<?php
function factorial($n) {
    if ($n == 0) {
        return 1;
    } else {
        return $n * factorial($n - 1);
    }
}

echo factorial(5); // 输出: 120
  • 函数类型声明和返回类型声明
    PHP 7 引入了类型声明,允许你指定函数参数和返回值的类型。
<?php
function add(int $a, int $b): int {
    return $a + $b;
}

// 调用时必须传递两个整数
$result = add(5, "10"); // 将引发TypeError

通过本教程,你将掌握PHP的基础和高级特性,为你的Web开发之旅打下坚实的基础。现在,让我们开始编码吧!

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子羽bro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值