Rumah >pembangunan bahagian belakang >tutorial php >php变量的定义和作用域的代码实例详解

php变量的定义和作用域的代码实例详解

黄舟
黄舟asal
2017-03-13 16:35:551435semak imbas

一、            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也可以使用
                  echopreg_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(&#39;php&#39;,&#39;.net&#39;,&#39;subject&#39;=>&#39;java&#39;);
    foreach($arrayas $key => $value){
   echo$key.&#39;:&#39;.$value;
   echo&#39;<br/>&#39;;
   }

3,数组指针

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

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

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

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

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

4,常用的数组函数

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

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

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

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

 

              对象

       3,特殊类型

       NULL

       Resource

Atas ialah kandungan terperinci php变量的定义和作用域的代码实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn