zoukankan      html  css  js  c++  java
  • php基础语法

    一,语法环境

    1,标准形式(常用)

    <?php

    这里是php代码

    ?>

    2,标准形式

    <script language="php">

    这里是php代码

    <script>

    3,短标签形式(不常用)此形式要更改php.ini里的设置:short_open_tag = on

    <?

    这里是php代码

    ?>

    说明:当一个php代码后面不再有其他非php代码(通常是html),此时php代码的最后结束标记(?>)可以省略

    二,基本语法形式

    1,变量名区分大小写(自己定义变量时都小写就可以)

      常量通常是大写

    2,php的语句结束符号是分号,不能省略

    三,变量

    1,变量含义:包含了一个名称和一个值的“标识符”

    2,形式:以$开头,后面紧跟变量名;注意:只要出现$符号,其后面紧挨着的字符都会被识别为一个变量,即使不存在该变量

    3,变量的基本使用

    php中只要定义变量就必须给其赋值  $name='李四';

    判断变量是否存在 isset()   存在就返回true  不存在就返回false   例如:$num1=1;  if(isset($num1)){echo "存在";}

    修改变量值(赋值):第二次及以后给一个变量赋值,就算是改变变量的值   例如:$num1=1;  $num1=2; 在$num1=1;之后,$num1=2;之前变量值就是1,在$num1=2;之后的变量值就是2了

    删除变量 unset():就是断开变量名跟数据之间的“引用关系”

    4,命名规则

    只能用大小写字母,下划线,数字,字母开头,不能跟所在环境的关键词重名

    驼峰命名法:

    示例:name,  myNamemyFatherName

    帕斯卡命名法:

    示例:Name,  MyNameMyFatherName

    下划线间隔法:

    示例:name,  my_amemy_father_name

    5,变量间的传值方式

    值传递:将一个变量的值赋给另一个变量  

    例如:$num1=1;

       $num2=$num1;

    引用传值:将一个函数的引用关系拷贝一份,然后赋给另一个变量,即另一个变量也同样由该关系决定了指向某个数据

    6,可变变量:一个变量的名又是一个变量   例如:$v=1; echo $$v;  其中$$v就是可变变量

    7,预定义变量,又叫超全局变量  超全局变量都是数组

    包括:$_GET,$_POST,$_REQUEST,$_SESSION,$_SERVER,$_GLOBALS,$_COOKIE

    $_GET变量:用来提交数据 

    形式一:

    <form action="aa.php" method="get">
        <input type="text" name="user"/>
        <input type="text" name="password"/>
        <input type="submit" value="提交"/>
    </form>
    View Code

    点击提交后,将用户填写的信息发送给aa.php页面,其实就是打开网页aa.php

    形式二:

    <a href="aa.php?user=zhangsan&password=123">跳转</a>
    View Code

    点击跳转后,将数据提交给aa.php页面

    形式三:利用location对象的方法assign()

    <script>
        location.assign("aa.php?user=zhangsan&password=123");
    </script>
    View Code

    当该语句执行时,将数据发送给页面aa.php

    形式四:利用location对象的属性href

    <script>
        location.href="aa.php?user=zhangsan&password=123";
    </script>
    View Code

    $_POST变量

    类似$_GET,通常只有一种形式

    <form action="aa.php?a=5&b=6" method="post">
        <input type="text" name="zhangsan"/>
        <input type="password" name="123"/>
        <input type="submit" value="提交"/>
    </form>
    View Code

    $_REQUEST变量:是$_POST数据和$_GET数据的总和

    $_REQUEST数组中包含了$_POST数据和$_GET数据-——其实是由系统内部自动存储的

    get和post同时提交的情形

    <form action="aa.php?a=5&b=6" method="post">
        <input type="text" name="zhangsan"/>
        <input type="password" name="123"/>
        <input type="submit" value="提交"/>
    </form>
    View Code

    此时,a=5和b=6是以get的方式提交的,zhangsan和123 是以post方式提交的

    在页面aa.php中:取get数据:$v1=$_GET['a'];

                 $v2=$_GET['b'];

            取post数据:$v3=$_POST['user'];

                  $v4=$_POST['123'];

    也可以这样取:$v1=$_REQUEST['a'];

           $v2=$_REQUEST['b'];

           $v3=$_REQUEST['zhangsan'];

           $v4=$_REQUEST['123'];

    当get数据和post数据同时提交并其中有重名时,$_REQUEST只会存储一个数据(get数据或post数据),至于存储那个数据是由php.ini里面的request_order="GP";来决定的   GP代表先存储get数据再存储post数据,且post数据会将get数据覆盖,PG刚好相反

    $_SERVER变量

    该变量存储了服务器端或客户端的一些请求信息或设置信息,比较多,而且不同的服务器和不同的请求页面,其数据项都可能不同。

    REMOTE_ADDR, 用户的IP地址

    SERVER_ADDR:  服务器端的IP地址

    SERVER_NAME:  服务器名(主机名)

    DOCUMENT_ROOT:  站点绝对路径(其实就是主机设置中的DocumentRoot

    PHP_SELF当前网页的文件路径

    $_GLOBALS变量

    他只是把我们自定义的所有全局变量存储到该数组中,变量名就是该数组的下标,变量值就是对应的值

    四,常量

    含义:用于存储一个不会变化也不希望变化的标识符

     1,定义形式

    使用define()函数定义

    define("常量名",常量值);

    使用const语法定义

    const 常量名=常量值

    const语法只能在最顶层的代码中使用,不能在大括号中

    2,使用方法

    直接使用名字

    使用constant(“常量名”)函数

    常量变量的区别:

    定义形式不同

    使用形式不同:常量无需$符号

    可变程度不同:常量的值不可以改变,常量也不可以销毁

    作用范围不同:常量具有超全局作用域 (函数内外都可以直接使用)

    可用类型不同:常量只能存储标量类型int,float,string,bool

    3,预定义常量

    比如圆周率M_PI

    php版本PHP_VERSION
    执行php的操作系统名称PHP_OS

    最大整形数PHP_INT_MAX

    最近的警告处E_WARNING

    最近的错误处E_ERROR

    4,魔术常量

    值会随着一定条件变化的常量

    比如:__DIR__:当前网页文件所在目录

    __FILE__:当前网页文件

    __LINE__:当前这一行

    五,运算符

    1,算数运算符

    + * - / % ++ --

    其中取余运算符%,先取整,再取余   例如:$v=7.5%3; 结果是1

    ++:先完成变量的递增运算,再取得该变量的值参与别的运算。

    ++:先将原来变量的值临时存储,再将变量值递增,最后再将临时存储的值参与别的运算

    2,比较运算符

    > < >= <= == === !==

    ==:松散相等,比较的是两个数据“类型转换之后”是否有可能相等,也常常认为是“数据内容是否相同”

    ===:严格相等,全等,只有两个数据的类型和数据的内容都完全一致,才相等。

    3,逻辑运算符

    &&与  ||或

    4,条件(三木)运算符

    $score = 66;

    $result 1=  $score >= 60  ?  “及格”  不及格”; //结果是“及格” 说明:当$score大于等于60时,就是及格,否则不及格

    5,字符串运算符

    将运算符两边的数据转化为字符串,实际可以理解为字符串拼接

    6,赋值运算符

    =

    六,数组

    PHP中,数组的下标可以是整数,也可以是字符串

    1,定义:$arr = array(元素1,元素2,。。。);

    array(1,  5,  1.1,  “abc”,  true,  false); //可以存储任何数据,此时为“默认下标”,

    array(2=>1,  5=>5,  3=>1.1,  7=>“abc”,  0=>true);//下标可以任意设定(无需顺序,无需连续)

    array(2=>1,  5,  1=>1.1,  “abc”,  0=>true)//可以加下标,也可以不加(默认下标),下标分别是:2,3,1,4,0

    //默认下标规则:前面已经用过的最大数字下标+1

    array(2=>1,  ‘dd’=>5,  1=>1.1,  “abc”,  0=>true)//混合下标,同样遵循默认下标规则

    array(-2=>1,  ‘dd’=>5,  1.1,  “abc”,  true); //负数下标不算在整数下标中,而只当作字符下标

    //则最后3项的下标是:0, 1, 2

    array(2.7=>1,  ‘dd’=>5,  1=>1.1,  “abc”,  0=>true)//浮点数下标为自动转换为整数,且直接抹掉小数

    array(“2.7” =>1,  ‘dd’=>5,  “11”=>1.1,  “abc”,  true)//纯数字字符串下标,当作数字看待,

    //则此时下标为:2, ‘dd’, 11, 12, 13

    array(2=>1,  ‘dd’=>5,  true=>1.1,  “abc”,  false=>true)//布尔值当下标,则true1false0

    array(2=>1,  ‘dd’=>5,  2=>1.1,  “abc”,  true)//如果下标跟前面的重复,则单纯覆盖前面同名下标的值

    2,数组的分类

    从键值关系分为:

    关联数组:通常下标是字符串,并且从该字符串大体可以表达出数据含义的数组

    索引数组:通常是一个数组的下标严格的从0开始的连续的数字下标

    从数组层次来分:一维数组  二维数组  多维数组

    数组遍历:

    基本语法:foreach($arr as [$key]=>$value){}  其中$key可省略,他代表键;$value代表值

    交换原理:

    此时的$a=4;$b=3;

    冒泡排序:

    <?php
       //定义一个数组
         $arr = array(1,5,4,8,6,9,2);
        //定义数组的长度
        $length_arr = count($arr);
        for($i=0;$i<$length_arr-1;++$i){
            for($k=0;$k<$length_arr-1-$i;++$k){
                if($arr[$k]>$arr[$k+1]){
                   $a=$arr[$k];
                   $arr[$k]=$arr[$k+1];
                   $arr[$k+1]=$a;
                }
            }
        }
    var_dump($arr);
    ?>
    View Code

    输出结果就是:

     七,函数

    1,函数的定义形式

    function 函数名(形参1,形参2,.。。。){

      //函数体(代码)

    }

    2,函数的调用形式:本质上就是使用一个名字来达到执行其中函数中代码的作用

    通常分为两种情形的调用:

    第一种:没有返回值的函数,调用语句是独立语句:

    函数名(实参1,实参2,。。。);//实参个数应该跟形参有匹配性。

    第二种:又返回值的函数,调用语句通常会混杂在别的语句中,并将该调用的语句当作一个数据来使用

    例如:$a=函数名();  //赋值给其他变量

    $a=函数名()*3+6;  //参与运算

    echo 函数名();  //直接输出

    3,函数的调用流程

    开始调用:实参传给形参

    程序执行流程进入到函数中

    按照常规的程序逻辑执行函数中的代码

    如果遇到return语句,则终止函数的执行,跳回函数开始的位置

    如果执行到函数的最后位置,也同样跳回函数开始的位置

    4,函数参数的问题

    形参:

    形参一定是个变量

    该变量名只能在函数的内部有效,而且只在函数调用并执行时有效,函数结束,通常这些变量也会销毁

    实参:实参就是一个实际数据

    该数据可以是一个直接数据,也可以是一个变量中存储的数据

    实参的作用是将其数据赋值给形参

    实参跟形参通常是一一对应的关系

    默认值参数:定义一个函数时,在形参的位置,可以给形参设定默认值   例如:function($r,$PI=3.14){$result = $PI*$r*$r;return

    $result;} 此时$PI=3.14就是一个默认值参数

    注意:默认值不能是对象或资源类型,他只能是常量表达式,或常量,不能是变量

    参数的数量:

    函数的参数可以是0个或多个,通常情况下实参数量应该和形参数量一致,但是当形参中有默认值时,实参的对应项可以省略

    自由参数数量:

    函数定义时可以不给形参,但调用时,却又可以给定任何个数的实参,这种应用的实现,是2依赖与系统中的三个系统函数来达到的:

    func_get_args();  //获得一个函数所接收到的所有实参数据,结果是一个数组

    func_get_arg();  //获得一个函数所接收到的第n个实参数据

    func_num_args();  //获得一个函数所接收到的所有实参数据的个数

    5,函数的返回值

    通常来说,一个函数中,使用return语句,其后面带一个数据(直接数据,变量数据,表达式结果数据),则函数就会返回该数据到调用的位置

    通常情况下,函数的返回数据都是以值传递的形式返回:函数中变量的值拷贝一份,返回给接受位置的相应代码,但也可以让函数中的变量数据的值,以引用传递的方式返回:

    定义函数:function &函数名(形参1,形参2,。。。){}

    6,匿名函数:就是没有名字的函数

    形式1:$f1 = function(){};

    形式2:调用其它函数2(匿名函数,实参1,实参2,。。。); 常见的形式就是call_user_func_array(匿名函数,数组);含义:将数组的每一项当作该匿名函数的若干个实参,传递到该匿名函数中,并执行该匿名函数,并可以从该匿名函数中返回数据。

    八,变量的作用域

    局部作用域:只能在所定义的函数范围内使用

    全局作用域:在函数的外部使用

    超全局变量:在函数的内部和外部都可以使用  预定义的变量都是超全局变量

    静态局部作用域:在函数内部局部使用,但是数据在函数退出后不会丢失 例如上面的static $a=1;

  • 相关阅读:
    《信息学奥赛一本通》提高版题解索引
    QUERY [ 单调栈 ]
    [ 模拟退火 ] bzoj3860 平衡点
    [ 考试 ] 7.12
    离线和简单分治
    [ 校内OJ ] NOIP2019模拟赛(九)
    校内模拟考 (一)
    Codeforces 808E
    学习笔记—点分治
    [ 线段树+哈希 ] 反等差数列
  • 原文地址:https://www.cnblogs.com/wfc139/p/8982871.html
Copyright © 2011-2022 走看看