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(); // 我是灭绝
相关推荐
景天科技苑2 分钟前
【Rust闭包】rust语言闭包函数原理用法汇总与应用实战
开发语言·后端·rust·闭包·闭包函数·rust闭包·rust闭包用法
uyeonashi1 小时前
【Boost搜索引擎】构建Boost站内搜索引擎实践
开发语言·c++·搜索引擎
再睡一夏就好1 小时前
从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
linux·服务器·c语言·开发语言·学习笔记
TIF星空2 小时前
【使用 C# 获取 USB 设备信息及进行通信】
开发语言·经验分享·笔记·学习·microsoft·c#
zm3 小时前
TCP 粘包
服务器·网络·php
Smile丶凉轩4 小时前
Qt 界面优化(绘图)
开发语言·数据库·c++·qt
reasonsummer5 小时前
【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面
开发语言·python
苏三福6 小时前
ros2 hunmle bag 数据包转为图片数据 python版
开发语言·python·ros2humble
qqxhb7 小时前
零基础学Java——第十一章:实战项目 - 桌面应用开发(JavaFX入门)
java·开发语言·javafx
大神薯条老师7 小时前
Python零基础入门到高手8.4节: 元组与列表的区别
开发语言·爬虫·python·深度学习·机器学习·数据分析