PHP基础知识

【学习资料】

视频: https://www.bilibili.com/video/BV1Xh411S7G1?spm_id_from=333.788.videopod.episodes\&vd_source=be26b82da70367069ab00d6db4f4ffc0

文档:https://www.runoob.com/php/php-tutorial.html

目录

1,PHP是什么

PHP(Hypertext Preprocessor 超文本预处理器) 的简称,是一种被广泛应用的开源通用的服务器端脚本语言,适用于 Web 开发并可嵌入 HTML 中。

  • 通用:指跨平台,如:Windows、Linux、MacOS
  • 开源:意味着你可以轻松获取全部源代码,并进行定制或扩展
  • 免费:意味着你不必为PHP花一分钱,哪怕用在商业项目中
  • 服务器端:意味着你必须将它安装在服务器环境下才可以使用
  • 脚本语言:解释型语言,按编写顺序执行。是指不需要编译,直接由解释器/虚拟机执行的编程语言

2,PHP能做什么

  • 可以快速动态的生成HTML页面
  • 可以返回前端需要的各种类型的数据
  • 可以高效安全的处理表单数据
  • 可以安全的操作服务器上的文件
  • 可以控制与客户端的会话( Cookie/Session )
  • 可以对用户的行为进行授权控制
  • 可以高效安全的操作各种类型的数据库
  • 通过扩展,可以实现加密,压缩等其他功能
  • 可以提供接口数据,包括:小程序、APP、等其他语言

3,PHP程序执行流程

4,学习PHP需要什么基础

  • HTML:超文本标记语言
  • CSS:层叠样式标本
  • JavaScript:前端脚本编程语言

5,PHP基础语法

php文件默认扩展名是 .php;

php文件中可以包含html,css,JavaScript代码;

一,php程序

1,php标记

  • 开始标记<?php和结束标记?>中间写PHP代码;
  • 如果没有写结束标记,那么代表所有的代码都用php来解析;
javascript 复制代码
<?php

?>

2,php代码

指令 描述
echo 可以输出一个或多个字符串,用逗号(,)隔开
print 只允许输出一个字符串
javascript 复制代码
<?php
    echo 111,222;
    print 111;
?>
; // 语句结束符

3,php注释

javascript 复制代码
<?php
    // 这是单行注释
    /*
        这是多行注释
        注释后,在浏览器和网页源码中,是看不到的。
    */
?>

二,php变量

1,声明变量

javascript 复制代码
<?php
    $a = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
    echo $a;
?>

2,变量命名规则

  • 开头不能用数字;
  • 中间不能有空格;
javascript 复制代码
<?php
    // 下划线命名法
    $new_title = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
    echo $new_title;
    echo '<hr>';
    // 小驼峰命名法
    $newTitle  = 'php中文网《玉女心经》公益PHP WEB培训系列课程汇总';
    echo $newTitle;
    echo '<hr>';
    // 大驼峰命名法
    $NewTitle  = 'html5中submit是按钮么';
    echo $NewTitle;
?>

三,php标量数据类型

javascript 复制代码
echo 输出数据值,开发时使用;
var_dump 可以打印数据类型和值,测试时使用;

<?php
    $x = true;
    var_dump($x); // 类型 值 =》 bool(true)
    echo '<hr>';
    $y = false;
    var_dump($y); // 类型 值 =》 bool(false)
?>

字符串

  • 引号内的数据;
  • 可以是单引号或双引号;
  • 字符串不用引号会报错;
  • 数字,浮点数,布尔型,用引号也属于字符串;

双引号与单引号的区别?

  • 双引号可以解析变量,单引号不行;
javascript 复制代码
<?php
   $name = "欧阳";
   echo "我的名字:$name"; // 我的名字:欧阳
   echo '我的名字:$name'; // 我的名字:$name
?>

四,php复合数据类型

五,php特殊数据类型

六,数组

数组Array:数组可以在一个变量中存储多个值;

javascript 复制代码
1,创建数组
<?php
    // 第一种方式
   $arr = array();
    var_dump( $arr ); //array(0) { }
    
    // 第二种方式
    $arrs = [];
    var_dump( $arrs ); //array(0) { }
?>

2,创建索引数组
<?php
  $arr = array(
    '欧阳',
    '西门',
    '灭绝'
);
var_dump( $arr ); // array(3) { [0]=> string(6) "欧阳" [1]=> string(6) "西门" [2]=> string(6) "灭绝" }
?>

3,创建关联数组
<?php
 $arr = [
    'ouyang' => '欧阳',
    'ximen' => '西门',
    'miejue' => '灭绝'
];
var_dump( $arr ); // array(3) { ["ouyang"]=> string(6) "欧阳" ["ximen"]=> string(6) "西门" ["miejue"]=> string(6) "灭绝" }
?>

<?php
 $arr = [
    'ouyang' => '欧阳',
    'ximen' => '西门',
    'miejue' => '灭绝'
];
var_dump( $arr['miejue'] ); // string(6) "灭绝"
?>

print_r()打印数组

javascript 复制代码
print_r() VS var_dump()

<?php
 $arr = [
    'ouyang' => '欧阳',
    'ximen' => '西门',
    'miejue' => '灭绝'
];
var_dump( $arr); // array(3) { ["ouyang"]=> string(6) "欧阳" ["ximen"]=> string(6) "西门" ["miejue"]=> string(6) "灭绝" }
echo "<hr>";
print_r($arr);// Array ( [ouyang] => 欧阳 [ximen] => 西门 [miejue] => 灭绝 )
?>

php 连接符 .

javascript 复制代码
<?php
 $arr = [
    'ouyang' => '欧阳',
    'ximen' => '西门',
    'miejue' => '灭绝'
];
echo "我的名字是" . $arr['ouyang'] . ",他的名字是" . $arr['ximen']; // 我的名字是欧阳,他的名字是西门
?> 

php数组循环

javascript 复制代码
<?php
   $arr = array(
    "ouyang" => "欧阳",
    "ximen" => "西门",
    "miejue" => "灭绝"
   );

    //    第一种方法
   foreach($arr as $v) {
    echo $v;
    echo '<hr>';
   }

    //    第二种方法
   foreach($arr as $k => $v) {
    echo $k . '----' . $v;
    echo '<hr>';
   }

七,PHP条件判断

javascript 复制代码
  // 三元运算符
    <?php
        $ouyang = '123';
        echo $ouyang ? '我知道了' : '我不知道';  // 我知道了
    
    
    // if ...... else
    <?php
    $miejue = "西门";
    $ouyang = '';
    
    if($ouyang) {
        echo "我是欧阳";
    }elseif($miejue) {
        echo "我是西门";
    }
    
    // switch语句
        $str = '欧阳11';
        switch($str) {
            case '欧阳':
                echo "我是欧阳";
                break;
            case "西门":
                echo "我是西门";
                break;
            case "灭绝":
                echo "我是灭绝";
                break;
            default:
                echo $str;
        }
        
    // match 语句
        $str = 'ximeng';
         echo match($str) { // 西门
            "ouyang" => "欧阳克",
            "ximeng" => "西门",
            "miejue" => "灭绝",
        };
        
    - Match是一个表达式,表示其结果可以存储在变量中或返回;
    - Match分支仅支持单行表达式,不需要中断,陈述;
    - Match匹配进行严格的比较;

八,PHP函数

1,什么是函数?

  • 函数是一段可以重复执行的代码片断;
  • 函数是实现代码复用的重要手段;
  • 函数是现代编程语言最重要的基本单元;
  • 函数永远是编程的核心工作;

2,函数的分类

  • 系统函数:编程语言开发者事先写好提供给开发者直接使用的;
  • 自定义函数:用户根据自身需求,对系统功能进行扩展;

3,String字符串函数

4,Array数组函数

5,自定义函数

javascript 复制代码
<?php
    function fun_name($num1,$num2=20,$num3=30) {
        return $num1 + $num2 + $num3;
    };

    echo fun_name(10); // 60
    
    // 函数的基本语法:
    - 必须使用关键字 function声明;
    - 函数名称不区分大小写,多个单词推荐使用下划线连接;

6,作用域

javascript 复制代码
- php中,只有函数作用域和全局作用域;
- 所有函数作用域中的变量,外部不可见;
- 全局作用域声明变量,在函数中是可见的;

九,PHP运算符

十,循环

javascript 复制代码
<?php
    $int = 1;
    // while循环
    while($int < 10) {
        echo $int;
        $int++;
    }

    // do......while循环
    do {
        echo $int;
        $int++;
    }while($int < 10);

    // for 循环
    for($int=1; $int<10; $int++) {
        echo $int;
    }

continue

  • 结束当前循环,进入下次循环
  • 在循环语句中使用 while,for

break

  • 结束循环
  • 在循环语句中使用 while,for,switch
  • 可以跳出多层循环

6,PDO操作数据库

  • PDO:php数据对象
  • PDO统一了PHP访问各种类型数据库的访问方式;

7,类与对象

javascript 复制代码
<?php
    // 创建类
    class Teacher {
        // 成员变量:类属性
        public $name = '灭绝师太';

        // 成员方法
        public function fun1() {
            return '姓名:' . $this->name . ' ,你好';
        }
    }

    // 调用类
    $ouyang = new Teacher(); 
   echo $ouyang->name;  // 灭绝师太
   echo '<hr>';
    echo $ouyang->fun1(); // 姓名:灭绝师太 ,你好
javascript 复制代码
<?php
    // 创建类
    class Teacher {
        // 成员变量:类属性
        public $name = '灭绝师太';
        public $school = "PHP中文网";

        // __construct 构造方法
        public function __construct($name,$school)
        {
            $this->name = $name;
            $this->school = $school;
        }

        // 成员方法
        public function fun1() {
            return '姓名:' . $this->name . ' ,你好';
        }

        // __destruct 析构方法
        public function __destruct()
        {
            echo '<hr> 类执行完毕,要关闭了';
        }
    }

    // 调用类
    $ouyang = new Teacher("西门大官人",'php'); 
   echo $ouyang->name; // 西门大官人
   echo '<hr>';
    echo $ouyang->fun1(); //姓名:西门大官人 ,你好

类的三大特性

  • 继承:可以让某个类型的对象获得另一个类型的对象的属性和方法;
  • 封装:指将客观事物抽象成类,每个类对自身的数据和方法实行保护;
  • public 默认的,关键词定义类内,类外,子类都可见;
  • protected 关键词定义类内,子类可见,类外不可见;
  • private 关键词定义类内可见,子类,类外不可见;
  • 多态:指同一个实体同时具有多种形式,它主要体现在类的继承体系中;

8,命名空间

解决全局成员的命名冲突问题;

创建命名空间

javascript 复制代码
<?php

    // 第一种
    // namespace one {
    //     function php() {};
    // }

    // namespace two {
    //     function php() {};
    // }

    // 第二种
    namespace three;
    function php(){};

    namespace four;
    function php() {};
javascript 复制代码
<?php

    namespace one;
    const name = "西门";
    function php(){
        echo "我是" . name;
    };

    // 调用 one命名空间的php方法
    php(); // 我是西门

    namespace tow;
    const name = "欧阳";
    function php() {
        echo "我是" . name;
    };

    php(); // 我是欧阳

    namespace one\two\three;
    const name = "灭绝";
    function php() {
        echo "我是" . name;
    }
    php(); // 我是灭绝
相关推荐
JaguarJack8 小时前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo8 小时前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack1 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay2 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954482 天前
CTF 伪协议
php
BingoGo4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack6 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端