zoukankan      html  css  js  c++  java
  • php变量的定义和作用域

    一、            php变量的定义和作用域

    变量:在方法中调用属性的时候,不能直接使用echo  ,在类中要使用$this对象

    1,PHP变量的定义和使用 :字母 下划线 开头 ^[a-zA-Z_]\w*

    2,PHP变量的作用域:

                         局部作用域:在函数内部定义的变量,只能在函数内部起作用

                       全局作用域:global $var

                               $GOOBALS[‘var’]

           3,变量的赋值(值传递;引用传递):1、值传递:

                                        $num1 =10;$num2=$num1;$num1=20;echo $num2;

    //php默认的变量赋值传递,不改变原来的值//输出10

                                     2、引用传递:

                                        //引用传递,通过&来实现,引用的是保存地址中的值

           4,超全局变量(预定义的变量):

    ①     $GLOBALS 保存全局变量

    ②     $_SERVER 保存服务器信息

    ③     $_GET 保存get数据

    ④     $_POST 保存post数据

    ⑤     $_FILES 保存提交的文件

    ⑥     $_COOKIE 保存得到的cookie

    ⑦     $_SESSION 保存session数据

    ⑧     $_REQUEST 保存请求数据

    ⑨     $_ENV 保存环境

    二、            常量

       define()函数可以定义常量

    defined()判断某个常量是否被定义了

    特点:

    (1)常量的定义不用使用$

    (2)常量不用理会作用域,可以在任何地方使用

    (3)常量一旦被定义,不能被重新复制

    魔术常量(7个):

    __FILE__ 获得当前文件的绝对路径和文件名

    __LINE__ 文件当前的行号

    三、            控制结构

       1,return;

    (1)函数中使用return,立即停止函数的执行,将函数的值返回;

    (2)在php脚本中使用,停止脚本文件代码的执行

    2,require_once() 

    和require()作用一样,都是引入外部文件,区别在于 require_once(),如果该文件已经被包含,则不会再次包含,避免函数重定义和变量的重新赋值

    3,include()和require()的区别在于,include()重复包含文件时,产生警告级别的错误;require()产生致命错误

    四、    函数

    参数的传递,默认也是值传递,即使在函数内部修改了参数的值,也不会影响函数外面的值

    要想影响通过引用传递,引用的是这个变量在内存空间保存的值

    五、    php的数据类型

        1,标量类型

             字符串

                1,字符串的定义

                      单引号:单引号会将内容原封不动的输出---执行速度快

                      双引号  (比较):双引号会解析变量---执行速度慢

               2,常用的字符串函数(重点)

                    查找:

    //strpos(haystack,needle);查找字符串首次出现的位置

    $str3 = 'you are beautiful!';

                          $a = 'a';

       $b = strpos($str3,$a);//字符串首次出现的位置

                    //strrchr() 从字符串最后一次出现的位置开始,返回子字符串

                    替换:

                      //trim()去掉字符串首尾空白字

                       echo trim($str4);//去除前后空格

    //str_replace(查找的字符串,替换的字符串,在哪个字符串中查找);

    $str5 = __FILE__;

       $str6 = str_replace('string.php','',$str5);

    //substr_replace()把字符串的一部分替换成另一个字符串

    echo substr_replace($str8,'mathbook',11);//替换

    //substr(string,start,length);返回字符串的子串

    echo substr($str8,8);//m开始截取

     

                    比较:

                     //strcasecmp()以不区分大小写的方式比较字符串,返回0表示字符串相等

    //将字符串全部转化为小写 strtolower($str1);

    //将字符串全部转化为大写 strtoupper($str2);

     

                    拆分:

                     //explode将字符串根据某个定界符分割成一个数组

                      $str_1 = 'php,3g,.net,java';

                       $str_2 = explode(',',$str_1);//根据某个定界符,将字符串分割成一个数组

                       var_dump($str_2);

    //implode()通过一个定界符使数组元素连接成一个字符串

                      $arr = array('php','3g','.net','java');

                       echo $str_3 = implode($arr,',');//根据定界符,将数组连接起来

    3,正则表达式匹配:

       preg_match()  进行正则表达式匹配

                      //php支持正则表达式,正则可以比喻成一个筛子,js可以使用它,php也可以使用

                      echo preg_match('/(HTTP:\/\/W{3}\.)(.+)/i','HTTP://WWW.sina.com',$match);

                       // 如果提供了第三个参数,会将整个正则表达式匹配的所有结果放到数组中

          echo $domain = $match[2];

    preg_replace(正则表达式,替换的结果,查找的字符串

     //sina.com替换成360.com

        echo preg_replace('/sina\.com/','360.com','HTTP://WWW.sina.com');

    //按照正则表达式匹配的结果进行替换

                     整型

                     浮点型

                     布尔型

     2,复合类型

                  数组:

    1, 数组的定义 array() 或 []

    2,遍历数组(重点)

       (1)使用for()遍历数组,适合下标从0开始,连续的整型索引数组

                       $arr = array('php','3g');

                          //count()统计数组元素的个数也就是数组的长度

                          for ($i=0;$i<count($arr);$i++){

                         echo $arr[$i];

       }

    (2)foreach()遍历数组

    $array = array('php','.net','subject'=>'java');

        foreach($array as $key => $value){

       echo $key.':'.$value;

       echo '<br/>';

       }

    3,数组指针

       (1)current()获得当前数组指针指向的数组元素

    (2)next()  将数组的指针指向下一个

    (3)prev()  将数组的指针向前移动一个

    (4)reset() 重置数组指针

    (5)end()   将数组指针移动到最后

    4,常用的数组函数

                    array_push() 入栈,讲一个或多个元素压入数组的末尾

    array_pop()   出栈,将数组最后一个元素弹出

    array_shift()  将数组开头的元素移出

    array_unshift()  在数组开头插入一个元素

     

                  对象

           3,特殊类型

           NULL

           Resource

  • 相关阅读:
    学习进度
    移动端使用rem.js,解决rem.js 行内元素占位问题
    利用递归实现数组的扁平化
    ES6 新增声明变量的 var let const 的区别详解
    js学习笔记
    ajax中error函数参数与返回值详解 200 300 400 500
    处理 vue项目 打包后导致css文件引用静态目录路径异常的问题
    vue-cli3 配置 vue.config.js
    使用 vue-cli3 搭建一个项目
    vue-router params 和 query 的区别
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3063416.html
Copyright © 2011-2022 走看看