zoukankan      html  css  js  c++  java
  • (独孤九剑)--基本语法

    【一】基本语法概述

    对于一看就懂的也要亲自动手操作,不要骗自己,写不出来代码就是不会!!!

    内容列表:

    【三】变量
    【四】输出显示命令
    【五】注释
    【六】数据类型
    【七】数据类型的查看与判断
    【八】数据类型的转换
    【九】常量
    【十】变量
    【十一】变量引用
    【十二】表达式与运算符

    【二】第一段PHP代码

    www文件下新建文档demo.php,输入代码

    1 <?php
    2     phpinfo();
    3 ?>

    保存运行后,查看效果即可看到PHP相关信息的列表

    <?php为PHP开始

    ?>为PHP结束

    代码解析:phpinfo()函数,解析当前电脑的PHP相关详细信息

    【三】变量

    1. 在相同作用域里,变量拥有覆盖性。即后面的变量会覆盖之前的变量,例如

    <?php
        $a = 1;
        $b = 2;
        $a = 2;
        echo $a+$b;
    ?>

    输出结果为4,因为变量$a重置覆盖了。

    2. 变量特点:

                      ①赋值性,$a = 5;将5赋值给a

                      ②覆盖性;

                      ③变量必须以$符开头;

                      ④$后不能以数字开头;

                      ⑤区分大小写;

                      ⑥禁止使用特殊字符;

                      ⑦变量名要有意义,便于交流理解;

    【四】输出显示命令

    共有三种 echo();    print_r();       var_dump();

    输出值:print_r();   

    正常输出echo();

    输出数据类型:var_dump(),会输出数据类型和长度。 一般是开发的人看的,它输出更多的信息。

    注意:echo 和 print_r 只是输出基本信息,不会输出结构,一般用于返回信息给用户看。

    输出字符串时需要加"",这里注意中文都是字符串

    可以输出整型,字符串,变量

    【五】注释

    作用:1. 对重点进行标注解释;2. 方便查找;3. 通俗易懂;4.生成文档

    分类:

            1. 单行注释//

    //$name = "Tony";

           2. 单行注释#

    #$name = "Tony";

           3. 多行注释/* */

    /*
    $name = "Tony";
    $name = "Tony-One"
    */

    【六】数据类型

    数据类型分为标准数据类型和复合数据类型

    标准数据类型:整型,浮点型,布尔值,字符串,null。

    复合数据类型:数组,对象

    新类型:资源数据类型

    下面列举几个介绍下

    1. 布尔值:一般程序里1位true,0为false

    2. 字符串:

              声明方法有3种:

                       ①单引号声明'name'

                       ②双引号声明"name"

                       ③定界符 / 字界符:在 <<< 之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。

              字符串拼接用 . 即可,

    3. 字界符 / 定界符实例:

       注意:边界符也可以解析变量

    <?php
    $main = <<< ETO
    我是二年级<br>
    三班<br>
    学习委员
    ETO;
    echo $main;
    ?>

    4. 单引号与双引号区别:

          ①双引号解析变量,单引号不能解析变量,例如

    <?php
    $name = "Tony";
    $info = "我的名字叫 $name";
    echo $info;
    ?>

    双引号可以解析变量$name,所以可以输出结果--我的名字叫Tony。但是单引号无法解析变量,所以会输出---我的名字叫$name

          ②双引号可以解析转义字符,而单引号不能。边界符也可以解析变量

           转义字符,例如HTML实体字符&lt和&gt,转义为< 和 >,举例:

    <?php
    $name = "Tony";
    $info = "我的名字叫&lt$name&gt";
    echo $info;
    ?>

         ③单引号效率略高于双引号;

         ④可以互插,当双引号里插入带有变量的单引号时,会解析出变量

    5. null类型

      函数null的三种情况①给变量赋值为null,例如$name = null; ②变量没有赋值,例如$name; ③通过unset()销毁变量

    <?php
    $value = null;
    var_dump($value);
    ?>

    输出结果为NULL

     接下来介绍3个与NULL相关的函数empty(),unset()和inset()

        ①empty()函数判断是否为空,若为null空或者false返回true,否则返回false。例如

    <?php
    $value = null;//或者为0false / 1true
    if(empty($value)){
        echo "为空,执行真区间";
    }else{
        echo "不为空,执行假区间";
    }
    ?>

       ②inset()函数,传入一个或多个变量,变量用逗号分开。只要有一个为null,则返回false,否则返回true

         可以与empty()对比,区别在于inset()可以传入多个变量,同时判断多个,出现null情况时返回false,与empty()正好相反.

         只要传入的不是空,则返回true

    <?php
    $value1 = false;
    $value2 = 1;
    $value3 = null;
    if(isset($value1,$value2,$value3)){
        echo "执行真区间";
    }else{
        echo "执行假区间";
    }
    ?>

       ③unset()函数,销毁变量,返回null,例如上个例子修改

    <?php
    $value1 = false;
    $value2 = 1;
    $value3 = null;
    unset($value1);
    if(isset($value1,$value2,$value3)){
        echo "执行真区间";
    }else{
        echo "执行假区间";
    }
    ?>

    这里我用unset()销毁了$value1变量,所以$value变为null,那么isset()里传入null后会执行else代码块

    6. 复合数据类型---对象,数组

       所谓复合类型,就是一个类型里可以同时存入多种数据类型(字符串,整型,浮点,布尔值等)

    7. 资源类型

       打印结果只会显示单词resource,而不会显示出其他信息。

       具体包含①Word,excel等文件;②图片;③音乐;④电影;⑤网页;⑥数据库等

       资源就是操作可见和不可见的文件,网络和数据。以后会经常设计到操作图片和网络

    【七】数据类型的查看与判断

    (1)查看数据类型

        ① 查看数据类型:gettype(),对应强制转换数据类型settype(val,type)

         获得变量的类型,例如输出string

    <?php
    $name = "Tony";
    echo gettype($name);
    ?>

        ②查看数据类型和值:var_dump()

       传入一个变量,输出变量类型和值,例如输出string(4) "Tony"

    <?php
    $name = "Tony";
    echo var_dump($name);
    ?>

    (2)判断数据类型

    PHP在判断数据类型上很智能,使用is_系列函数。

    is_types系列函数可以判断数据类型,返回布尔值boolean,即只会返回true或false

    如果是则返回true,否则返回false

    例如:

    <?php
    $name = "Tony";
    echo is_string($name);//判断类型---为真所以返回1
    var_dump($name);//检验类型----string(4) "Tony"
    ?>

    is_types系列的列表:

    整型is_init();浮点型is_float();布尔值is_bool();字符串is_string();数组is_array();对象object();是否为空is_null();

    资源is_reource();标量is_scalar();数字is_numeric();函数is_callable();

     【八】数据类型的转换

    数据类型转换包含自动转换与强制转换

    PHP在5.x版本是弱类型的编程语言。弱类型就是在声明变量时,不需要指定变量的类型。意思是如果我要声明一个变量,不用在前面加上类型

    PHP在7.0版本开始,可以强制指定类型来声明变量,也可以不用

     1. 布尔值的自动类型转换

         自动类型转换:就是数据类型在某些情况下自动变为其他类型参与运算

         转换时机:运算和判断时,某些值会自动转换

         自动转换情况:

         ①整型的0为假,其他为真;②浮点型0.0为假,其他为真;③空字符串为假,含有空格为真;

         ④字符串的0为假,其他为真;⑤空数组为假,里面有值为真;⑥空null为假;⑦未声明成功的资源为假。

        案例:字符"0"自动转化为整型0

    <?php
    $float = "0";
    if($float){
        echo "真";
    }else{
        echo "假";
    }
    ?>

    2. 其他类型的自动类型转换

       布尔值--->整型,浮点型

       字符串--->整型,浮点型

    3. 强制类型转换

       强制类型转换有三种方式:

       (1)intval(),floatval(),strval()

       (2)变量前加(),里面加上类型,转化后赋值给其他值

       (3)settype(变量,类型)直接改变变量本身

    (1)案例:整型转化为字符型strval()

    <?php
        $value = 123;
        $valueStr = strval($value);
        var_dump($valueStr);
    ?>

    (2)案例:整型转化为字符型,变量前加(),里面加上类型,转化后赋值给其他值

    <?php
        $value = 123;
        $valueStr = (string)$value;
        var_dump($valueStr);
    ?>

    (3)整型转化为字符型,settype(变量,类型)直接改变变量本身

    <?php
        $value = 123;
        $valueStr = settype($value, 'string');
        var_dump($value);
    ?>

      强制转换时情况:

       ①空转整型时会转为0;②空转为浮点型时转为0;③空转为字符串会转为空字符串;④浮点123.0转为字符串123;

       ⑤settye("变量","null")等价于unset();

    【九】常量

    (1)常量

            使用范围:定义工作目录,账号密码,版本号

           简介:不变的量

           定义:define(常量名,常量值)

           注意:①常量名通常大写;②常量名通常加引号;③调用常量时不能用引号包裹;④常量名只建议用字母或下划线;

    <?php
        define("NAME", 'Tony');
        echo "我的名字是".NAME."<br>";
    //我的名字是Tony
    echo "我的名字是NAME";
    //我的名字是NAME
    ?>

    (2)系统内置常量

           LINE:当前所在行;FILE:当前文件所在服务器的路径;FUNCTION:当前函数名;CLASS:当前类名;

           METHOD:当前成员方法名;PHP_OS:PHP运行的操作系统;PHP_VERSION:PHP版本;

           TRAIT:Trait特征的名字,PHP5.4新加;DIR:文件所在目录;NAMESPACE:当前命名空间的名称(区分大小写);

    (3)defined()函数来做安全机制

           defined()主要为了防止他人绕过安全检查文件

           语法:defined(常量)

           作用:向函数后面传入常量,如果常量定义了就返回true,否则返回false

    (4)defined()与define()区别

    define--->定义一个常量
    defined--->检查某个名称的常量是否存在

    define("CONSTANT", "Hello world.");
    if (defined('TEST')) {
    echo TEST;
    }

    (5)常用场景

    define与defined的组合最常见的场景是,可以用来控制文件的访问权限。比如,我们不希望一个模板文件被直接通过链接地址被别人访问。我们可以在每个模板文件头写代码控制

    【十】变量

    (1)可变变量

    可变变量就是在已经声明的变量前再加上变量符$,例如:

    <?php
        $value = "name";
        $name = "Tony";
        echo $$value;
    ?>

     对于echo $$value来说,解析了两次变量,第一次解析为$name,然后打二次解析$name为输出结果Tony

    (2)外部变量

    外部变量就是在使用过程里规定的变量

    (3)超全局变量

       PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
       这些超全局变量是:
       $_COOKIE:得到会话控制里cookie传值;$_GET:得到get传值结果;$_POST:得到post传值结果;

       $_SESSION:得到会话控制力session传值;$_FILES:得到文件上传结果;$_REQUEST:即能得到post传值,又能得到get传值

    (4)环境变量(也是超全局)

          环境变量主要用到$_SERVER和$_ENV两个环境变量,不过$_ENV逐渐被新版本废弃了

          查看环境需要用到phpinfo();

          $_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息

         常用的几个环境变量名:

          ①$_SERVER['PHP_SELF']:返回当前执行脚本的文件名;②$_SERVER['REQUEST_METHOD']:返回当前页面请求方法get / post

          ③$_SERVER['REQUEST_URI']:返回当前页面的URI;④$_SERVER['SERVER_SOFTWARE']:返回用的哪种服务器;

          ⑤$_SERVER['REMOTE_ADDR']:返回浏览当前页面的用户的 IP 地址;⑥$_SERVER['SERVER_ADDR']:返回当前运行脚本所在的服务器的 IP 地址;

          ⑦$_SERVER['SCRIPT_FILENAME']:返回当前执行脚本的绝对路径;⑧$_SERVER['SCRIPT_NAME'] :返回当前脚本的路径;

          ⑨$_SERVER['HTTP_USER_AGENT']:当前访问这个网址的电脑和浏览器的情况;

          ⑩$_SERVER['HTTP_REFERER']:上级来源(用户从哪个地址进入当前网页的);

          ⑪$_SERVER['REQUEST_TIME']:返回请求开始时的时间戳(例如 1577687494);

    (5)静态变量static

    特点:声明一个静态变量,第二次调用函数的时候,静态变量不会再初始化。

    场景:例如想统计函数被多次调用的次数,可以在函数内部定义一个静态变量,从而保证变量不会在每次加载时被初始化

    <?php
        function demo(){
            static $num = 0;
            $num++;
            echo "我被调用了".$num."次<br>";
        }
        demo();
        demo();
        demo();
    ?>

    原理:静态变量的值在计算机内存会自动保存;而正常变量的值在使用完之后便销毁

    【十一】变量引用

    (1)简单引用

    <?php
        $a = 1;
        $b = $a;
    $b = 2;
    echo "a的值是$a".",b的值是$b"; ?>

     输出结果:a的值是1,b的值是2

    (2)公用地址引用

    还是上面的例子,我对$b = $a加修改,改为$b = &$a

    <?php
        $a = 1;
        $b = &$a;
        $b = 2;
        echo "a的值是$a "." ,b的值是$b";
    ?>

    输出结果会变为a的值是2,b的值是2

    原因解析:$b = &$a会使得$a和$b共用一个内存地址

    【十二】表达式与运算符

     (1)算术运算符

                +,-,*,/,%,=

               注意:①=是赋值,==是比较;②优先级:先乘除,后加减,有括号先执行小括号

     (2)自加自减运算

               $a++:先赋值后运算;++a:先运算后赋值

     (3)赋值运算符

             如$a = 5就是将右边的5赋值给左边的变量$a

             还有+=,-=,*=,/=,%=

     (4)比较运算符

              等于==;全等===;

              不等于!=;不全等于!==;不等于<>

               大于>;小于<;大于等于>=;小于等于<=;

      (5)逻辑运算符:与或非

         与:&&,and          或:||,or       非:!,xor

        xor异或的用法:

                                例如计算21 xor 2的结果?

                                先将21二进制,然后计算,具体以后再论

     (6)位运算

            位运算在开发里用的极少,了解即可,基本为进制运算

     (7)三元运算符和其他运算符

            1. 三元运算符

               相当于if..else结构,不过写法上更加简洁

               语法:$x?"真代码块":"假代码块";,举个例子

    <?php
        $a = 3;
        $b = 4;
        echo $a>$b?"条件为真":"条件为假";
    ?>

             分析:因为3不大于4,所以执行第二条代码块。

            2. 其他运算符

               ①=>数组下标访问符;

               ②->对象访问符;

    <?php
        //向obj对象里追加了一个成员属性username
        $obj -> username = "Tony";
        echo $obj -> username;
    ?>

               ③instanceof判断某个对象是否来自某个类,是则返回true,否则返回false

    <?php
        $obj = new StdClass();//实例化一个对象
        if($obj instanceof StdClass){//判断某对象是否由某个类实例化
            echo "真";
        }else{
            echo "假";
        }
    ?>

               ④反引用的本质就是在操作系统执行该命令

     (8)字符串运算符

             串接和串接赋值

    <?php
    $a = "Hello";
    $b = $a . " world!";
    echo $b; // 输出 Hello world!
    $x="Hello";
    $x .= " world!";
    echo $x; // 输出 Hello world!
    ?>

    【拓展】流程控制

    1. if..else..

       举个例子:结合布尔值和条件判断

    $value = 0;
    if($value){
        echo "布尔值为真";
    }else{
        echo "布尔值为假";
    }

    代码解析:因为$value设为0,而boolean值为1时真,为0时假。所以这里会输出布尔值为假

         

    【总结】

    1. 文件命名禁止中文,不要加空格,区分大小写;

    2. 销毁变量用unset();检验单个变量是否为空empty(),为空则返回true;检验多个变量是否为空isset(),为空则返回false;

    3. 输出数据类型var_dump(),该函数还会打印出字节数,UTF-8里一个中文为3个字节;

    4. form表单的action未填写时默认提交到本页

    .

  • 相关阅读:
    freemarker写select组件报错总结(七)
    freemarker写select组件(四)
    AIX 安装和卸载MQ软件
    freemarker写select组件(三)
    freemarker写select组件报错总结(六)
    freemarker写select组件报错总结(五)
    Linux s位设置
    libevent多线程使用事项
    对libevent+多线程服务器模型的C++封装类
    vs2010下libevent的使用
  • 原文地址:https://www.cnblogs.com/fightjianxian/p/8567740.html
Copyright © 2011-2022 走看看