上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主:  - 

【php学习记录贴】第二节 PHP基础

[复制链接]
  • TA的每日心情
    开心
    2022-7-24 10:18
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    27

    主题

    100

    回帖

    235

    积分

    高级工程师

    积分
    235
    发表于 2022-7-6 21:06:35 | 显示全部楼层 | 阅读模式

    本帖最后由 雯 于 2022-7-6 21:05 编辑

    1. PHP语法初步

    PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。

    1.1 PHP代码标记

    在PHP历史发展中,可以使用多种标记来区分PHP脚本:
    ASP标记:<% php代码 %>
    短标记:<? php代码 ?>

    以上两种基本不怎么使用,如果要使用,需要在配置文件中开启。开启方法:在php安装目录找到php.ini文件,在第211行左右有个‘short_open_tag=off’,第215行有个'asp_tags=off',并且文件里也告诉我们使用方法了。

    脚本标记:<script language="php">php代码</script>
    目前最常用的一种标记方法叫“标准标记”:<?php php代码?>

    1.2 PHP注释

    注释是一个好习惯,特别是对于初学者来说,注释代表的是你的代码思路。
    注释分为两种注释:行注释、块注释

    行注释:一次注释一行
        //:后面跟的所有内容都是注释
        #:与//一样
    块注释:一次性注释多行
        /*
        “/*”与“*/”中间的所有内容均为注释
        */

    1.3 PHP语句分隔符

    语句分隔符:在PHP中,代码是以行为单位,系统需要通过判断行的结束,该结束通常都是一种符号,“;”(英文状态下的分号)

    <?php
    echo 'hello world'
    echo 'hello world';
    ?>

    运行此代码会出现以下报错:
    Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ',' or ';' in ***.php on line 3

    其中,Parse error表示“解析错误”,syntax error表示“语法错误”,on line表示该错误在代码第几行。
    上面的代码缺少语句分隔符“;”所以才会出现报错,将第二行echo 'hello world'后加上英文分号即可。

    特殊说明
    1、PHP中标记结束符?>有自带语句结束符的效果,最后一行PHP代码可以没有语句结束符“;”【不建议大家使用】
    2、PHP中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,因此在平常书写代码的习惯中就不建议使用标记结束符?>,PHP会自动从开始到最后全部认为是PHP代码,从而解析。

    2. 变量

    PHP是一种动态网站开发的脚本语言,因此动态语言特点是交互性,会有数据的传递,而PHP作为中间人,需要进行数据的传递,传递的前提就是PHP能够临时存储这些数据。

    2.1 变量的概念

    变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。变量可以通过变量名来进行访问。在指令试语言中,变量通常是可变的。

    简单来说就是:
    1、变量是用来存储数据的 ;
    2、变量是有名字的;
    3、变量是通过名字来访问数据的;
    4、变量是可以改变的:数据

    2.2 变量的使用

    PHP中的所有变量都必须使用“$”符号。
    1、定义:在系统中增加对应的变量名字(内存)
    2、赋值:可以将数据赋值给变量名(可以在定义的同时完成)
    3、可以通过变量名访问储存的数据
    4、可以将变量从内存中删除

    <?php
    
        //变量
    
        //定义变量:在PHP中不许哟啊任何关键字定义变量(赋值)
        $var1; //定义变量
        $var2 = 1;//定义变量同时赋值
    
        //访问变量
        echo $var2; //通过var2变量名字找到存储的内容1,然后输出。
    
        //修改变量
        $var2 = 2; //在代码运行至此行时修改var2变量的值为2。
        echo '<hr/>',$var2; //再次输出var2的值,其中“'<hr/>'”的意思是换行。
    
        //删除变量:使用unset(变量名字)
        unset($var2);
        //如果此时我继续输出变量
        echo $var2;
        //就会出现以下报错
        Notice: Undefined variable: var2 in ***.php on line *
        //Notice的意思是“通知”,Undefined variable的意思是“未定义的变量”

    2.3 变量命名规则

    1、在PHP中变量名字必须以“$”符号开始;
    2、名字由字母、数字和下划线“_”构成,但是不能以数字开头;
    3、在PHP中本身还允许中文变量(不建议);

    2.4 预定义变量

    预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)

    $_GET:获取所有表单以get方式提交的数据
    $_POST:post提交的数据都会保存在此
    $_REQUEST:get和post提交的数据都会保存在此
    $_SERVER:服务器信息
    $GLOBALS:PHP中所有的全局变量
    $_SESSION:session会话数据
    $_COOKIE:cookie会话数据
    $_ENV:环境信息
    $_FILES:用户上传的文件信息
    

    其中$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE都是比较常用的变量。

    2.5 可变变量

    可变变量:如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个“$”符号。
    如:

    $a = 'b';
    $b = 'bb';

    那么此时输出“a”得到的值为“b”,
    如果:

    $$a = 'b';
    $b = 'bb';

    那么此时输出“a”得到的值为“bb”。
    其实理解以下也很简单,就是$a输出的值为b,所以$$a此时会被解析为$'$a'->$'b'->$b->bb。

    2.6 变量传值

    将一个变量赋值给另外一个变量:变量传值

    变量传值一共有两种方式:值传递、引用传递
    值传递:将变量保存的值复制一份,然后将新的值(复制出来的)给另外一个变量保存(此时两个变量之间没有关系)。

    $a = 1;
    $b = $a;    //引用传递,此时a和b变量的值都为1
    //下面如果我将b变量赋予新值
    $b = 2;
    //那么此时再输出a、b
    echo $a,$b;   //此时返回的值为1,2
    //因为b之前是复制a的值,因此再赋新值2给b时,a的值不受影响。

    引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(两个变量是同一个值)。

    $a = 1;
    $b = &$a;   //引用传递,此时a和b变量的值都为1
    //下面如果我将b变量赋予新值
    $b = 2;
    //那么此时再输出a、b
    echo $a,$b;   //此时返回的值为2,2
    //因为b被赋予了a的储存路径,并且将a储存的值更改为了2,所以输出a的时候返回的值也是2.

    在内存中通常有以下几个分区:
    栈区:程序可以操作的内存部分(不存储数据,运行程序代码),空间小但是运行速度快。
    代码段:存储程序的内存部分(不执行)
    数据段:存储普通数据(全局区和静态区)
    堆区:存储复杂数据(空间大,效率低)

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表