PHP基础笔记
创始人
2024-11-04 18:04:51
0

基础课文档

现在是2023年9月,本系列课程基于php8

学习网站推荐:
PHP 教程 (w3school.com.cn)
PHP 教程 | 菜鸟教程 (runoob.com)

关于php

  • PHP 是 “PHP Hypertext Preprocessor” 的首字母缩略词

  • PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

  • PHP 是开源免费的,并且使用广泛 , 可供免费下载和使用,可商用

  • PHP 脚本在服务器上执行

  • PHP 是解释型语言,按顺序从上往下执行,无需编译,直接运行

  • 它强大到足以成为在网络上最大的博客系统的核心(WordPress)!

  • 它深邃到足以运行最大的社交网络(facebook)!

  • 而它的易用程度足以成为初学者的首选服务器端语言!

什么是 PHP 文件?

  • PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码
  • PHP 文件的后缀是 “.php”
  • PHP 代码在服务器上执行,而结果以纯文本返回浏览器

PHP 能够做什么?

  • PHP 能够生成动态页面内容 (Html页面渲染)
  • PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件 (文件操作)
  • PHP 能够接收表单数据 (例如注册登录)
  • PHP 能够发送并取回 cookies (记录用户状态等信息)
  • PHP 能够添加、删除、修改数据库中的数据 (数据操作)
  • PHP 能够限制用户访问网站中的某些页面 (权限管理)
  • PHP 能够对数据进行加密和压缩
  • PHP 通常用于小程序 app 浏览器插件等的后端服务接口

通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像、PDF 文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML 和 XML。

为什么使用 PHP?

  • PHP 是跨平台的,可运行于各种平台(Windows, Linux, Unix, Mac OS X 等等)
  • PHP 兼容几乎所有服务器(Apache,Nginx, IIS 等等)
  • PHP 支持多种数据库 (Mysql)
  • PHP 是免费的。请从官方 PHP 资源下载:

    php语法

    基础 PHP 语法

    PHP 脚本以开头,以?>结尾:

       

    PHP 脚本可放置于文档中的任何位置,文件扩展名是 “.php”。
    PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码,注意: html js css可以写在php文件里运行,但php不能写在html js css文件里运行。

    PHP 语句以分号结尾(;)

        

    我的第一张 PHP 页面

    输出方法:echo 和 print

    不同点:

    • echo - 能够输出一个以上的字符串,英文逗号隔开
    • print - 只能输出一个字符串,并始终返回 1
    • echo 比 print 稍快,并且开销低
    猫叔123!"; echo "Hello world!
    "; echo "Maoshu", " string", 1, " 2 "; ?>

    相同点:

    • 都是一个语言结构,有无括号均可使用:echo 或 echo() print 或 print()

    注释

    注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读(让别人阅读明白,提醒自己做过什么,特别是一些函数方法的用途等)

     

    变量

    变量是存储信息的容器,有点类似初中数学里的代数 x=1,y=2

    $a=5; $_a = 5; $b=6; $c=$a+$b; echo $c; 

    =号并不是真实的等号,而是叫赋值

    变量命名规则
    • 变量以 $ 符号开头,其后是变量的名称
    • 变量名称必须以字母或下划线开头
    • 变量名称不能以数字开头,不能有空格
    • 变量名称只能包含字母 数字 字符和 下划线(A-z、0-9 以及 _)
    • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

    注释:PHP 变量名称对大小写敏感!

    推荐的几种命名方法:

    • 下划线命名法 $first_name = 'zhang';
    • 小驼峰命名法 $firstName = 'zhang';
    • 大驼峰命名法 $FirstName = 'zhang';
    $txt="Hello world!"; $a=5; $b=8.5; 

    不必告知 PHP 变量的数据类型,php会根据它的值,自动把变量转换为正确的数据类型

    变量也有作用域之分,等到后面函数的时候再说。

    空白符
    echo '猫叔  你在干什么  ?  ';  /**  我在  看抖音小姐姐   */ 

    大小写敏感

    所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感
    但是所有变量都对大小写敏感

    ECHO "Hello 猫叔!
    "; echo "Hello 猫叔!
    "; EcHo "Hello 猫叔!
    "; PRint "Hello 猫叔!
    ";
    $color="red"; echo "My car is " . $color . "
    "; echo "My house is " . $COLOR . "
    ";

    命令行的使用

    可以像python一样在命令行里运行php
    用cmd或者vscode插件

    可以获取用户输入的内容

    $input = readline("请输入内容:");  echo "您输入的内容是: " . $input; 
    echo "请输入内容:";  $input = fgets(STDIN);  echo "您输入的内容是: " . $input; 

    数据类型

    字符串、整数、浮点数、逻辑(布尔型)、数组、对象、NULL、资源类型
    用var_dump() 会返回变量的数据类型和值,一般用于开发调试时使用

    只获取数据类型 echo gettype($a);

    字符串

    字符串是字符序列,比如 “Hello world!”。

    字符串可以是引号内的任何文本,可以使用单引号或双引号
    注意双引号和单引号的区别

    $x = "Hello world!"; echo $x; echo "
    "; $x = 'Hello world!'; var_dump($x);

    整数

    和数学里的整数有些区别

    • 整数必须有至少一个数字(0-9)
    • 整数不能包含逗号或空格
    • 整数不能有小数点
    • 整数正负均可
    • 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
    $x = 5985; var_dump($x); echo "
    "; $x = -345; // 负数 var_dump($x); echo "
    "; $x = 0x8C; // 十六进制数 var_dump($x); echo "
    "; $x = 047; // 八进制数 var_dump($x);

    浮点数

    浮点数是有小数点或指数形式的数字

    $x = 10.365; var_dump($x); echo "
    "; $x = 2.4e3; var_dump($x); echo "
    "; $x = 8E-5; var_dump($x);

    逻辑(布尔值)

    $x=true; $y=false; 

    数组

    在一个变量中存储多个值
    分为一维数组和多维数组,认识即可,不要深究,后面会专门讲

    $cars=array("Volvo","BMW","SAAB"); $_cars=["Volvo","BMW","SAAB"]; var_dump($cars); var_dump($_cars); 

    对象

    需要用到类和封装的知识
    等学到类的时候再讲

    Null

    特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值
    注意:可以通过设置变量值为 NULL 来清空变量数据

    $x="Hello world!";  var_dump($x);  $x=null;  var_dump($x);  

    resource 资源类型

    等学到数据库的时候再讲

    初级实战 - 个人博客的开头部分

    实战目标:
    html简单介绍
    复习变量声明和输出
    复习注释
    了解变量重复赋值

    EOF(heredoc) 定界符使用说明

    • 以<<

    • 结束标记必须顶头写,独自占一行,不能有缩进和空格

    • 在结束标记末尾要有分号

    • EOF可以用任意其它字符代替,开始标记和结束标记相同即可,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。

    • 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符.或,来拼接

    • 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义。

     看上面的name已经不是name啦!!!
    EOF; echo $a; echo '
    '; $a=<<html格式会被解析
    你看看a标签显示了没? 你看看br显示了没?
    EOF; echo $a; echo '
    '; echo <<

    运算符

    注:资料来源于菜鸟教程 www.runoob.com

    算术运算符

    ![[Pasted image 20230922152416.png]]

    ';  // 换行   echo ($x - $y); // 输出4 echo '
    '; // 换行 echo ($x * $y); // 输出60 echo '
    '; // 换行 echo ($x / $y); // 输出1.6666666666667 echo '
    '; // 换行 echo ($x % $y); // 输出4 echo '
    '; // 换行 echo -$x; //整数之间的整除,参数也必须是整数,向下取整 var_dump(intdiv(10, 3)); ?>

    赋值运算符

    ![[Pasted image 20230922155033.png]]

     

    递增/递减运算符

    ![[Pasted image 20230922160114.png]]

     

    比较运算符

    ![[Pasted image 20230922160145.png]]

    "; var_dump($x === $y); echo "
    "; var_dump($x != $y); echo "
    "; var_dump($x !== $y); echo "
    "; $a=50; $b=90; var_dump($a > $b); echo "
    "; var_dump($a < $b); ?>

    逻辑运算符

    ![[Pasted image 20230922160442.png]]

    and 和 && 的区别, or 和 || 的区别

    主要体现在优先级:

    • && 运算符的优先级比 and 运算符高。
    • 这意味着,在一个表达式中, && 运算符会先被执行,然后才是 and 运算符。
         echo 'true'; } else{         echo 'false'; }  echo '----'; // 在表达式中使用and运算符 $bool = true and false;  // 显示and运算符的运算结果 echo "and运算符的结果为:"; if($bool){         echo 'true'; } else{         echo 'false'; } ?> 
    阻断效果
    //or-前面语句值为真,or后面不执行;否则,执行 $result = 0 or var_dump('执行我的语句');  //输出-执行我的语句 var_dump($result);  //int 0 $result = 2 or var_dump('执行我的语句');  //不输出 var_dump($result);  //int 2 

    条件语句 (条件分支)

    if语句

    仅当指定条件成立时执行代码

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

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

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

    注意:break很重要,不要漏掉

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

    什么时候适合用switch?
    适合条件比较多,并且条件单一固定值匹配时用

    循环

    让相同的代码块一次又一次地重复运行

    for 循环

    用于预先知道脚本需要运行的次数的情况

    for (初始值; 条件; 增量) {         要执行的代码(叫循环体); } 

    参数:

    • 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
    • 条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
    • 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。

    注释:上面的初始值增量参数可为空,或者有多个表达式(用逗号分隔)。

    for ($i=1,$j=0; $i<=5; ) {         echo "数字为 " . $i.$j . PHP_EOL;     $i++; } 

    while 循环

    只要指定的条件成立,则循环执行代码块,直到指定的条件不成立

    while (条件) {         要执行的代码; } 

    注意避免死循环

    $i=1; while($i<=5) {         echo "The number is " . $i . "
    "; $i++; }

    do…while

    语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环

    do {         要执行的代码; } while (条件); 
    $i=1; do {         $i++;     echo "The number is " . $i . "
    "; } while ($i<=5);

    continue和break

    continue
      for ($i=0; $i < 5; $i++) {          if($i == 3){             continue;     }     echo $i;   } 
    break
    for ($i=0; $i < 5; $i++) {          if($i>3){             break;     }     echo $i; } 
    break 2
    for ($i = 0; $i < 3; $i++) {             echo "外层循环: " . $i . "
    "; for ($j = 0; $j < 5; $j++) { echo "内层循环: " . $j . "
    "; if ($j == 2) { break 2; // 跳出两层循环 } } } echo '已跳出全部循环';
    在while中使用continue break和break2
        $a = 10;     while ($a <= 20) {             $a++;          if($a == 15){                 //continue;             break;         }          echo $a.'---';     } 
        $a = 10;     while ($a <= 20) {             $a++;          if($a == 15){                 for ($i=0; $i < 5; $i++) {                      if($i==3){                         break 2;                 }                 echo '
    '.$i.'
    '; } } echo $a.'---'; }

    foreach 循环

    用于遍历数组,等学数组一起讲

    数组

    数组能够在单个变量中存储多个值,并且可以根据 键 访问其中的 值

    数值数组
    $maoshu = array("猫叔1","猫叔2","猫叔3","猫叔4","猫叔5"); $maoshu = ["猫叔1","猫叔2","猫叔3","猫叔4","猫叔5"];  var_dump($maoshu[1]); var_dump($maoshu[5]);  
    $maoshu2 = []; $maoshu2[3] = '3';  var_dump($maoshu2); 

    关联数组

    关联数组是使用您分配给数组的指定的键的数组

    $age=["maoshu"=>"35","dong"=>"37"];  //或者  $age['maoshu']="35";   $age['dong']="37"; 

    获取数组的长度 - count() 函数

    echo count($maoshu); 

    遍历数组

    for($i=0;$i 	echo $maoshu[$i]; 	echo "
    "; } foreach ($maoshu as $value) { 要执行代码; } foreach ($maoshu as $key => $value) { 要执行代码; }

    for可以,while也可以,但最常用的是foreach

    多维数组

    多维数组是包含一个或多个数组的数组

      $maoshuArr = [     [         "免费课"=>[             "猫叔课",             "php",             "python"         ],         "体验课"=>[             "php",             "js",             "vue"         ]     ],     [         "收费课"=>[             "油猴脚本",             "浏览器插件",             "666"         ]     ]   ];    print_r( $maoshuArr ); 
     $maoshuArr = [    "test" => [         "免费课"=>[             "猫叔课",             "php",             "python",         ],         "体验课"=>[             "php",             "js",             "vue",         ]     ],    "product" => [         "免费课"=>[             "产品1",             "产品2",         ],         "体验课"=>[             "产品3",             "产品4",         ]     ]   ];    print_r( $maoshuArr ); 

    遍历多维数组

    foreach ($maoshu as $key => $value) {         要执行代码; 	foreach ($value as $kk => $vv) 	{     	    要执行代码; 	} } 

    初级实战2 - 个人博客的开头部分

    实战目标:

    • 复习运算符的使用
    • 复习条件语句的使用
    • 复习循环
    • 学会使用数组

    任务:
    循环数组:输出顶部导航栏,输出博客标题和时间
    条件语句:如果为第一个导航,则给出突出显示
    运算:输出数字的大小从大到小排列

    函数

    函数是一段可重复使用的代码块,可以将一系列操作封装起来,使代码更加模块化、可维护和可重用,来大大节省我们的开发时间和代码量,提高编程效率。

    内置函数

    内置函数有很多,之前学的print_r() count() 就是一个内置函数,
    获取当前时间 time(),date(‘Y-m-d H:i:s’)

    这节我们主要讲自定义函数

    创建(定义)函数 和 调用

    PHP 函数准则:

    • 函数的名称应该提示出它的功能
    • 函数名称以字母或下划线开头(不能以数字开头)
    function functionName() {      // 要执行的代码  } //调用 functionName(); 
    function test(){         echo '我的名字是:写代码的猫叔'; }  test();  // 获取当前的时间 function nowTime(){     	echo date('Y-m-d H:i:s'); }  nowTime(); 

    添加参数

    为了给函数添加更多的功能,我们可以添加参数,参数类似变量

    function myName($name){     	echo "我的名字是:$name"; }  myName("猫叔"); 
    // 获取当前的时间 function nowTime($type){         if($type=="time"){             echo date('Y-m-d H:i:s');     }     else if($type==

相关内容

热门资讯

分享!微信里面拼三张链接房卡/... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33699510许多玩家在游戏中会购买房卡来享...
科普!微信金花房卡链接在哪弄的... 微信游戏中心:牛牛房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
一分钟了解!牛牛房卡出售龙王大... 今 日消息,龙王大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
两秒就懂!微信怎么开炸金花房间... 微信游戏中心:炸金花房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信炸金花房...
科普!微信炸金花链接房卡如何充... 微信游戏中心:拼三张房卡,添加微信【8488009】,进入游戏中心或相关小程序,搜索“微信拼三张房卡...
微信金花房卡链接使用方法/微信... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
科普!微信玩炸金花如何买房卡,... 微信游戏中心:拼三张房卡,添加微信【55051770】,进入游戏中心或相关小程序,搜索“微信拼三张房...
两秒就懂!微信拼三张房卡哪里有... 微信游戏中心:拼三张房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信拼三张房...
IA解析/游戏微信牛牛房卡超稳... IA解析/游戏微信牛牛房卡超稳众娱/房卡是在哪里买的Sa9Ix苹果iPhone 17手机即将进入量产...
IA解析/金花房卡批发价新天王... 您好!微信新天王/老夫子大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(新天王/老...
分享!微信牛牛房卡找谁买/卡贝... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33699510许多玩家在游戏中会购买房卡来享受...
房卡必备教程“牛牛链接房卡找谁... 新乐游是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来...
科普!微信如何创建炸金花房间链... 微信游戏中心:拼三张房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信拼三张房...
正规平台有哪些,游戏微信牛牛房... 荣耀乐娱房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
ia攻略/牛牛房卡官网新老夫子... ia攻略/牛牛房卡官网新老夫子/房卡链接怎么获取新老夫子是一款非常受欢迎的游戏,咨询房/卡添加微信:...
两秒就懂!微信里面斗牛链接房卡... 微信游戏中心:斗牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
一分钟推荐“金花链接房卡如何充... 新毛豆互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
科普!炸金花房卡从哪买的,微信... 微信游戏中心:炸金花房卡,添加微信【8488009】,进入游戏中心或相关小程序,搜索“微信炸金花房卡...
正规平台有哪些,牛牛房卡怎么购... 微信游戏中心:盘古大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
玩家攻略,金花房卡是正规的龙马... 龙马大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...