PHP学习笔记(三)

2023-08-02 489 0

PHP基础知识

一. 条件语句

条件语句用于根据不同条件执行不同动作。

1.if 语句

if 语句用于仅当指定条件成立时执行代码

1)语法

if (条件){
    条件成立时要执行的代码;
}

//例
<?php 
    //if条件语句
    $age = 15;
    if($age < 20) {
        echo '满足条件';
    }
?>

2.if...else语句

在条件成立时执行一块代码,条件不成立时执行另一块代码

1)语法

if (条件)
{
    条件成立时执行的代码;
}
else
{
    条件不成立时执行的代码;
}

//例
<?php 
    //if...else语句
    $age = 20;
    if($age < 20) {
        echo '满足条件';
    }else {
        echo '不满足条件';
    }
?>

3. if...elseif...else语句

在若干条件之一成立时执行一个代码块

1)语法

if (条件){
    'if'条件成立时执行的代码;
}elseif (条件){
    'elseif'条件成立时执行的代码;
}else{
    条件不成立时执行的代码;
}

//例
<?php 
    //elseif条件语句
    $age = 20;
    if($age < 20) {
        echo '满足if条件';
    }elseif($age === 20) {
        echo '满足elseif条件';
    }else {
        echo '不满足条件';
    }
?>

4.break和continue

break和continue都是用来控制循环结构的,主要作用是停止循环。

break:用于跳出一个循环体或者完全结束一个循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码;break不仅可以结束其所在的循环,还可结束其外层循环。

<?php 
    $products = [
        ['name' => 'apple', 'price' => 10],
        ['name' => 'peach', 'price' => 5],
        ['name' => 'mongo', 'price' => 15],
        ['name' => 'grape', 'price' => 20],
        ['name' => 'orange', 'price' => 8],
        ['name' => 'watermelon', 'price' => 4]
    ];

    foreach($products as $product) {
        if($product['name'] === "grape") {
            break;
        }

        echo $product['name']; //apple peach mongo
    }
?>

continue中止(跳过)本次循环,开始下一次循环。即跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定。continue 只能在循环语句中使用

<?php 
    $products = [
        ['name' => 'apple', 'price' => 10],
        ['name' => 'peach', 'price' => 5],
        ['name' => 'mongo', 'price' => 15],
        ['name' => 'grape', 'price' => 20],
        ['name' => 'orange', 'price' => 8],
        ['name' => 'watermelon', 'price' => 4]
    ];

    foreach($products as $product) {
        if($product['price'] < 8) {
            continue; //跳出本次循环,
        }
        echo $product['name']; //apple mongo grape orange
    }
?>

5.switch语句

switch 语句用于根据多个不同条件执行不同动作。

1)语法

switch (n)
{
case label1:
    如果 n=label1,此处代码将执行;
    break;
case label2:
    如果 n=label2,此处代码将执行;
    break;
default:
    如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}

//例
<?php 
    $favcolor = 'red';
    switch($favcolor) {
        case "red":
            echo "你喜欢的颜色是红色";
            break;
        case "blue":
            echo "你喜欢的颜色是蓝色";
            break;
        case "green":
            echo "你喜欢的颜色是绿色";
            break;
        default:
            echo "你喜欢其他颜色";
    }
?>

二.运算符

1.逻辑运算符

  • x and y 与 如果 x 和 y 都为 true,则返回 true。
  • x or y 或 如果 x 和 y 至少有一个为 true,则返回 true
  • x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true
  • x && y
  • x || y
  • ! x 非 如果 x 不为 true,则返回 true。
<?php 
    $products = [
        ['name' => 'apple', 'price' => 10],
        ['name' => 'peach', 'price' => 5],
        ['name' => 'mongo', 'price' => 15],
        ['name' => 'grape', 'price' => 20],
        ['name' => 'orange', 'price' => 8],
        ['name' => 'watermelon', 'price' => 4]
    ];

    foreach($products as $product) {
        if($product['price'] > 10 && $product['price'] < 20) {
            echo $product['name'] . '1 <br>';
        }

        if($product['price'] > 15 || $product['price'] < 10) {
            echo $product['name'] . '2 <br>';
        }
    }
?>

三. php函数

PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 1000 个内建的函数。

1.php内建函数

2.php函数

  • 函数名称以字母或下划线开头(不能以数字开头)
  • 函数的名称应该提示出它的功能
  • 函数是通过调用函数来执行的。
  • 你可以在页面的任何位置调用函数

1)语法

//创建函数
function functionName()
{
    // 要执行的代码
}

//调用函数
functionName();

2)传参

//函数
function sayHello($name) {
    echo "$name world"; // hello world
}
sayHello('hello');

function formatProduct($product) {
    echo "{$product['name']} need cost {$product['price']}";
}

formatProduct(['name' => 'apple', 'price' => 10]);

3)返回值

如需让函数返回一个值,请使用 return 语句。

<?php 
    //函数
    function formatProduct($product) {
        // echo "{$product['name']} need cost {$product['price']}";
        return "{$product['name']} need cost {$product['price']}";
    }

    $formatted = formatProduct(['name' => 'apple', 'price' => 10]);
    echo $formatted;
?>

4)设置参数默认值

可给形参设置参数默认值。

<?php 
    //函数
    function sayHello($name = 'Hello') {
        echo "$name world"; // 传参时:hello world,不传参时:Hello world
    }
    sayHello('hello');
?>

四. 变量作用域

变量的作用域是脚本中变量可被引用/使用的部分。

PHP 有四种不同的变量作用域:

  • local
  • global
  • static
  • parameter

1. 局部变量

在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:

<?php
    //局部变量
    function myFunc() {
        $price = 20;
        echo $price; // 20
    }
    myFunc();
    echo $price; //报错 Warning: Undefined variable $price


    function myFunc2($age) {
        echo $age;
    }
    myFunc2(20);
    echo $age; //报错 Warning: Undefined variable $age
?>

2. 全局变量

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问。

global 关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字

<?php
    //全局变量
    $name = 'henry';
    function sayHello() {
        echo "Hello $name"; //Warning: Undefined variable $name
    }
    sayHello();
?>

通过global关键字将变量设为全局变量。

<?php
    //全局变量
    $name = 'henry';
    function sayHello() {
        global $name;
        echo "Hello $name"; //Hello henry
    }
    sayHello();
?>

重新赋值。

<?php
    //全局变量
    $name = 'henry';
    function sayHello() {
        global $name;
        $name = "Bob";
        echo "Hello $name"; //Hello Bob
    }
    sayHello();
    echo $name; //Bob
?>

局部变量的更改不会影响全局变量。

<?php
    //全局变量
    $name = 'henry';
    function sayBye($name) {
        $name = "Lucy";
        echo "Byebye $name"; // Byebye Lucy
    }
    sayBye($name);
    echo $name; //henry
?>

& 引用。

<?php
    //全局变量
    $name = 'henry';
    function sayBye(&$name) {
        $name = "Lucy";
        echo "Byebye $name"; // Byebye Lucy
    }
    sayBye($name);
    echo $name; //Lucy
?>

五. include和require

include 和 require 用于引入文件;除了处理错误的方式不同之外,在其他方面都是相同的。

  • require 加载文件失败,会生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
  • include 加载文件失败,会生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

1. 语法

include 'filename';
或
include('filename');

require 'filename';
或
require('filename');

示例:

新建test.php文件:

<?php 
    $test = ['test1','test2','test3'];
    echo $test[2] . '<br>';
?>

引入test.php文件:

<?php 
    //include 和 require
    include('file/test.php');
    require('file/test.php');
    echo 'end of php';
?>

结果显示:

test3
test3
end of php

常用于模块化。

例如:新建test.php

<?php 
    echo '欢迎您 初学者!!!';
?>

引入:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>include 和 require</title>
</head>
<body>
    <h1><?php include('file/test.php')?></h1>
    <h1><?php include('file/test.php')?></h1>
    <h1><?php include('file/test.php')?></h1>
</body>
</html>

显示结果:

相关文章

Laravel框架-环境配置
PHP面向对象
PHP学习笔记(六)
PHP学习笔记(五)
PHP学习笔记(四)
php学习笔记(二)

发布评论