精华内容
下载资源
问答
  • PHP入门-变量声明与使用

    万次阅读 2017-12-13 22:07:47
    本文介绍PHP变量声明与使用:

    本文介绍PHP中变量的声明与使用:

    1、变量的类型

    (1)虽然PHP是弱语言类型,但是PHP也有四种标量:

    1)整型:int      integer         

    2)布尔型:bool     boolean

    3)浮点型:float      double

    4)字符串:string

    (2)2种复合类型:

    1)数组:array   这里的数组可以存任意类型、任意长度的数据

    2)对象:object

    (3)两种特殊类型:

    1)资源类型:resource

    2)空类型:null   NULL

    2、布尔型和字符串类型注意事项

    (1)以下都为false的情况:由于php是弱类型,故有很多种情况都可以表示false,和其他语言不一样

    $b=false      $b=0       $0.000(不论多少个0)       $b=""     $b=''    

    (2)声明字符串

    1)单引号的内容直接输入,而双引号的内容编译后输入:例如:

    $name = 'hello';
    echo "the $name";
    双引号,会输出 the hello
    而如果是单引号,会输出 the $name

    2)感谢的解释:https://zhidao.baidu.com/question/134447028.html

    3)如果想深入了解请看:https://www.cnblogs.com/llsun/archive/2012/07/16/2593027.html

    3、数据类型的转换

    (1)强转转换

    1)使用setType(变量,类型)    类型可以是8种数据类型,它会改变变量的类型

    2)变量前加小括号和类型:(类型)变量

    3)使用int类型()的函数:例如:变量a=intVal(变量b) 

    (2)自动转换:如果使用字符串做加法,程序自动提取字符串最开始的数字进行相加

    4、常量的使用

    (1)定义:define("常量名",值);   

    (2)常量名建议大写;常量不可在定义后改变值;不可以使用unset()取消;常量在任何位置都可以访问

    (3)常量在声明和使用都不加$符号;常量只能使用标量类型


    展开全文
  • 1.2PHP变量

    千次阅读 2017-12-14 00:24:58
    1、变量声明 2、变量命名 3、可变变量 4、变量的引用赋值 5、变量的类型

           变量是用于临时存储值的容器。PHP最基本的数据存储单元是变量和常量。
           PHP是弱类型语言,在声明变量或者常量的时候,数据类型根据程序上下文决定,由于这个原因,使PHP和其他一些强类型语言(C、Java)有很大不同,也因此PHP可以更快的入门。
    1、变量的声明
    1)变量创建
    PHP特性之一就是在使用变量之前,不要求声明变量。当你第一次给一个变量赋值时,你才创建了变量。一旦创建了一个变量,你可以在脚本中重复使用。在php中声明一个变量需要在变量名前跟一个“$”符号。
    eg1:
    相信你一眼就能看懂下边的代码。

    <?php
        $a = 123;
        $b = 456;
        $c = $a;
        $a = $b = "abc";
        echo $c;
        echo $a;

    上例将会输出“123abc”。
    2)变量使用范围
    变量范围就是变量的生效范围。大部分的变量如果不是在函数里边声明的,这个变量在声明处到文本结束的小范围内有效,这个“小范围”不是<?php ?>开始和结束范围,还包括include和require的文件。还有另外一种叫全局变量,如COOKIE和SESSION可以在所有页面中使用。
    在变量的使用范围内,可以用unset()函数释放指定变量(内存中释放),使用isset()来判断某个变量是否存在,empty()来判断某个变量是否为空。这几个函数,在我们写业务代码时经常用到。
    #易混淆点
    empty()和isset()区别:
    如果empty()的参数是非空或者非零的值时,则返回false,否则返回true;如果isset()参数存在,则返回true,否则返回false。
    需要注意的是:
    “”,0,“0”,NULL,false,array(),var $var empty()判断这些值时返回的都是true(var 定义变量是在类中使用的,相当于public,不在类中使用会报错,反之,在类中定义变量不定义属性(public、protected、private),也会报错)。另外一个NULL字节("\0")并不等同于PHP的NULL常数。
    ②isset()判断被unset()处理后的变量返回的是false。
    ③推荐使用!empty($var)判断某个变量存在且不为空。
    ④网上及相关资料说没有任何属性的对象,empty()会返回true,但实际情况是返回的是false。查了很多资料,说是php4版本会返回true,具体情况得测试之后才知晓。

    eg2:下边举例了绝大部分例子

    <?php
        $var1 = '';//test1输出1,test2输出3
        $var2 = ' ';//test1输出2,test2输出3
        $var3 = 0;//test1输出1,test2输出3
        $var4 = '0';//test1输出1,test2输出3
        $var5 = null;//test1输出1,test2输出4
        $var6 = false;//test1输出1,test2输出3
        $var7 = array();//test1输出1,test2输出3
    
        class a{};
        $var8 = new a();//test1输出2,test2输出3
        $var9 = (object)null;//test1输出2,test2输出3
        $var10 = new StdClass();//test1输出2,test2输出3,此方法也是创建一个空对象
    
        $var11 = 'this is a test';
        unset($var11);//test1输出1,test2输出4
        $var12;//test1输出1,test2输出4
        $var13 = "/0";//直接var_dump($var13)会打印出string''(length=1),但是test1输出的是2,test2输出的是3,这里涉及到null和null字节("\0")不相等。
        $var14 = '/0';//直接var_dump($var14)会打印出'/0',test1输出的是2,test2输出的是3,这里$var13和$var14涉及到反斜杠转义
    
        function test1($var){
            if(empty($var)){
                echo 1;
            }else{
                echo 2;
            }
        }
        function test2($var){
            if(isset($var)){
                echo 3;
            }else{
                echo 4;
            }
        }
        test1($var1);//可以改变参数$var1来测试其他情况,下同
        test2($var1);

    2、变量的命名
    变量名是严格区分大小写的,但是内置结构和关键字以及用户自定义的类名和函数名都是不区分大小写的。例如echo、while、class 名称、function 名称等都可以任意大小写。
    eg: echo 1;与ECHO 1;是一样的。

    变量命名规范:
    ①变量名严格区分大小写
    ②变量名以字母或者下划线开头,后面跟上任意的数量的字母、数字或者下划线。
    ③变量名不能以数字开头,中间不可以有空格,不能使用点分开
    ④php中有一些标识符是系统定义的,即关键字。不能用这些关键字作为常量名、函数名、类名。但是可以使用这些关键字作为变量名,例如$echo,但是容易混淆,最好不要使用。
    ⑤一般变量命名都是有一定含义的,便于代码理解。一般多个单词构成的变量名,第一个单词全部小写,后边的每个单词首字母采用大写。eg:$aaaBbbCcc

    3、可变变量
    一个变量的名字是变量,即可变变量。
    eg:
    这个例子说

    <?php
        $a = 'hello';
        $$a = 'world';
        echo $$a;//输出world
        echo $a.$$a;//输出helloworld,其中“.”是php的拼接符
        echo "$a $$a";//输出hello $hello,双引号会解析变量
        echo "$a ${$a}";//输出hello world

    4、变量的引用赋值
    引用赋值对初学者来说,相对比较难以理解,这里使用一个例子解释。
    eg:假定$a的值为1,将$a的值引用赋值给$b,然后当你改变$a或者$b的值为2时,这时$a$b都将变为2。

    代码:

    <?php
        $a = 1;
        $b = &a;
        $b = 2;
        //$a = 2;注释$b=2,给$a赋值,结果一样
        echo $a.$b;//输出22

    从上面代码中可以看到,引用赋值用的是符号“&”,其$b引用了$a,可以理解成$b引用了$a的存值的地址,而不是复制其$a值得操作,从而这种赋值操作更加快速,也可以理解成$b$a的别名。但是只有在密集的循环中或者对很大的数组或者对象赋值时,才有可能注意到速度的提升。
    注意事项:
    ①只有有名字的变量名才可以引用赋值。
    ②表达式不能作为引用赋值
    ③与C语言的地址指针不同的是,$a$b在内存上并不是同体,只是把各自的值相关联起来。所以使用unset()其中一个变量,并不会导致另一个变量消失

    <?php
        $a = 1;
        $b = &a;
        //$b = &(2*2);//引用赋值无效,不能将表达式作为引用赋值,会报错
        function test(){
            retrn 3;
        }
        //$b = &test();//引用赋值失败,会报错
        unset($a);
        echo $b;//输出1

    5、变量的类型
    PHP是弱类型语言,其类型是根据存储的数据决定的。var_dump()可以查看变量类型,php中支持8种原始类型数据。
    ①标量类型:布尔型(boolean)、整型(int)、浮点型(float,也称作double)、字符串(string)
    ②复合型类型:数组(array)、对象(object)
    ③特殊类型:资源(resource)、NULL

    1)布尔型
    true或者false,即“真”或“假”。php进行关系运算(比较运算),以及逻辑运算时,返回true或false。
    在php中一些情况下,需要一个boolean型值时,会自动转为布尔型,例如if(){},此时任何类型的值,在if判断中都会转换为布尔型。
    以下会被转换为false,其他只会被转换为true
    ①false(字符串‘false’会被认为是true)
    ②整型值0,浮点型值0.0
    ③空白字符串(即”,不是’ ‘),字符串‘0’
    ④空数组(array())
    ⑤没有单元的对象(仅适用于php4)
    ⑥null(包括未被设定的变量)

    eg:

    <?php
        $a;
        $b = (object)null;//空对象
        var_dump((bool)false);//输出false
        var_dump((bool)'false');//输出true
        var_dump((bool)0);//输出false
        var_dump((bool)'0');//输出false
        var_dump((bool)0.0);//输出false
        var_dump((bool)'0.0');//输出true
        var_dump((bool)'');//输出false
        var_dump((bool)' ');//输出true
        var_dump((bool)array());//输出false
        var_dump((bool)null);//输出false
        var_dump((bool)$a);//输出false
        var_dump((bool)$b);//输出true,php7环境

    2)整型
    整型即整数,除了10进制以外,还有8、16进制也有整型。
    ①8进制,数字前需要加指定符号“0”,eg: echo $a = 0123;会输出83
    ②16进制,数字前需要加指定符号“0x”,eg:echo $b = 0xA;会输出10
    整型有最大值和最小值范围,这个与平台有关。32位的操作系统,最大值整数位2^(32-1)-1,最小值是-2^(32-1),因为php不能像其他语言那样将整数变成正数,即前面都是含有符号(“+”和“-”),所以最大值和最小值都要2的(32-1)次方。
    在php中,如果给一个变量的值大于最大值或者小于最小值,则会被php解释为float。
    eg:var_dump(12345678912345678912),会输出float(1.23456789123456E+19);var_dump(1);会输出int(1)

    3)浮点型
    浮点型是包含小数的部分的数。浮点数只是一个近似值,例如使用浮点数表示2,该数值内部表示其实类似1.99999….,所以不要相信浮点数结果精确到了最后一位,也不要比较两个浮点数是否相等,这一点很重要,因为在码代码过程中,可能涉及到金钱,因此造成损失。如果需要更高精度,应该使用任意精度数学函数或者gmp()函数。浮点数的字长也是跟平台相关的,精度在小数点后15位
    eg:

    <?php
        $a = 0.1*100;
        $b = 10;
        var_dump($a<$b);//输出true
        var_dump($a == $b);//输出false
    
        $a = 0.1*100;
        $b = 0.10000000000000001*100;
        var_dump($a == $b);//输出true

    如果非要比较两个浮点数大小,那么只能在精度范围内比较。以下是一些比较两个浮点数的方法。

    <?php
    // are 2 floats equal
    function floatcmp($f1,$f2,$precision = 10) 
    {
        $e = pow(10,$precision);
        $i1 = intval($f1 * $e);
        $i2 = intval($f2 * $e);
        return ($i1 == $i2);
    }
    
    // is one float bigger than another
    function floatgtr($big,$small,$precision = 10) 
    {
        $e = pow(10,$precision);
        $ibig = intval($big * $e);
        $ismall = intval($small * $e);
        return ($ibig > $ismall);
    }
    
    // is on float bigger or equal to another
    function floatgtre($big,$small,$precision = 10) 
    {
        $e = pow(10,$precision);
        $ibig = intval($big * $e);
        $ismall = intval($small * $e);
        return ($ibig >= $ismall);
    }

    另外,在浮点数运算中,也是需要注意的,因为计算机计算是将数值转换成二进制计算的,而二进制中,你看似有穷的小数, 在计算机的二进制表示里却是无穷的。在计算浮点数时,可以将其计算结果先转换成转换成string类型。
    这个网址有详细讲解其中原因:http://www.jb51.net/article/80734.htm

    eg:

    <?php
        var_dump((int)(0.58*100));//输出57,这与二进制有关,因为二进制中0.58是无限延长的值
        var_dump((int)(string)(0.58*100));//输出58
        $a= 0.58;
        var_dump(intval(strval($a*100)));//输出58

    4)字符串
    PHP没有对字符串大小强加实现范围,不必担心字符串长度。字符串可以用单引号、双引号、边界符三种方式定义,功能各不相同。
    ①单引号
    单引号中不能再包含单引号,会发生错误,必须要在单引号中含有单引号,可以用反斜线(\)转义。如果在单引号之前或字符串结尾需要出现一个反斜线,需要用两个反斜线表示。
    另外,单引号不会解析其中的变量,会原样输出,所以没有特别需求情况下,使用单引号定义字符串效率会更高,因为php在解析时省去了处理字符转义和变量上的开销。

    eg:

    <?php
        //单引号中如果需要再包含单引号,需要使用转义字符“\”
        echo 'this is a \'apple\'';//输出 this is a 'apple'
        //单引号中不会转义其他转义符
        echo 'this \n is \t a apple \\';//输出this \n is \t a apple \
        //不会转义变量
        $a = 1;
        echo '$a';//输出$a
    

    ②双引号
    双引号会解析其中的变量及转义字符,另外,复杂的语法可以用花括号({})括起一个表达式。如果想指定变量名字的结束,可以用{}括起来。

    eg:

    <?php
        $var = 1;
        //因为(')在变量名中是无效的
        echo "$var's";//输出1's
        echo "{$var}s";//输出1s
        //{}指定变量名结束
        echo "${var}s";//输出1s

    ③定界符
    通常用于从文件或者数据库中大段地输出文档,几乎不用。
    语法:使用“<<<”,在<<<后提供一个标识符开始,并以同样的标识符结束。
    注意事项:
    标识符命名规则和变量命名规则一样,只能含有字母、下划线、数字,且必须以下划线或者非数字字符开始。
    标识符必须从行的第一列开始,后边除了分号以外不能包含任何其他字符、空格、空白制表符。
    定界符不能初始化类成员,其他与双引号表现的一致。
    eg:

    <?php
        $string=<<<TEST
            结尾的ETO一定要顶头,在本行第一列,不然会如同双引号没有闭合,而且连注释都不能写\n
            123
    TEST;
    echo $string;
    //初始化类成员,以下会报错
    class test{
        public $a = <<<TEST
            123
    TEST;
    }

    5)数组
    数组是php重要的复合型数据类型。前面所说的类型都是标量类型,只能存储一个数据,数组可以存储多个数据,而且可以存入任何类型的数据。
    由于数组知识点较多,这里暂做简单介绍,后边会专门说明。
    数组的格式如下:
    eg:

    <?php
        /*
            array(
                key1=>value1,
                key2=>value2,
                ...
            )
            key可以是string或者int
            value可以是任意值
        */
        $a = array("a"=>1,2=>"b");

    6)对象
    在php中,对象是比数组更高级的复合数据类型,一个对象是由一组属性值和一组方法构成的。初始化一个对象,用new语句讲对象实例化到一个变量中,这里只做简单介绍和示例。
    eg:

    <?php
        class a{
            public $b;
            public function c(){
                echo 123;
            }
        }
    
        $p = new a();//实例化类a,创建对象。
        $p->b = '345';//访问对象中的属性
        $p->c();//访问对象中的方法

    7)资源类型
    8)NULL类型
    null类型唯一的值时null,不区分大小写,表示一个变量没有值,null既不表示空格,也不表示0,也不是空字符串,而是一个变量的值为空。以下三种情况被认为是空。
    ①变量的值被设置为null
    ②声明的变量没有赋值
    ③被unset()函数销毁的变量
    9)伪类型

    展开全文
  • php数组声明,遍历,数组全局变量

    千次阅读 2013-06-05 11:48:44
    php教程数组声明,遍历,数组全局变量 /* * 、数组的概述 * 1.数组的本质:管理和操作变量,成批处理 * 2.数组时复合类型(可以存储多个) * 3.数组中可以存储任意长度的数据,也可以存储任意类型的数据 *...

    php教程数组声明,遍历,数组全局变量

    <?
    /*
     * 一、数组的概述
     * 1.数组的本质:管理和操作一组变量,成批处理
     * 2.数组时复合类型(可以存储多个)
     * 3.数组中可以存储任意长度的数据,也可以存储任意类型的数据
     * 4.数组可以完成其他语言数据结构的功能(链表,队列,栈,集合类)
     * 
     *
     *
     * 二、数组的分类
     *  数组中有多个单元,(单元称为元素)
     *  每个元素(下标[键]和值)
     *  单访问元素的时候,都是通过下标(键)来访问元素
     *  1.一维数组,二维数组,三维数组。。。多维数组
     *  (数组的数组,就是在数组中存有其他的数组)
     *  2.PHP中有两种数组
     *   索引数组:就是下标是顺序整数的索引
     *   关联数组:就是下标是字符串作为索引
     *
     *   下标(整数,字符串)只有这两种
     *
     *
     * 三、数组多种声明方式
     *
     * 1.直接为数组元素赋值声明
     *   如果索引下标不给出,就会从0开始顺序索引
     *   如果给出索引下标,下一个就会从最大的开始增1
     *   如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值
     *   混合声明时,索引和关联不互相影响(不影响索引下标的声明)
     *
     * 2.使用array()函数声明
     *   默认是索引数组
     *   如果为关联数组和索引数组指定下标,使用 键=>值
     *   多个成员之间使用" , "分割
     * 3.使用其他的函数声明
     *
     *
     *
     *
     */
     //索引数组
     $user[0]=1;//用户序号
     $user[1]="zhangsan";//用户名
     $user[2]=10;//年龄
     $user[3]="nan";//性别
     echo '<pre>';
     print_r($user);
     echo '</pre>';
     //关联数组
     $user["id"]=1;
     $user["name"]="zhangsan";
     $user["age"]=10;
     $user["sex"];
     $user["age"]=90;//赋值
     echo $user["name"];//输出
     //使用array()声明数组
     $user=array(1,"zhangsan",10,"nan");
     //使用array()声明关联数组
     $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     //声明多维数组(多条记录),来保存一个表中的多条用户信息记录
     $user=array(
      //用$user[0]调用这一行,比如调用这条记录中的姓名,$user[0][1]
      array(1,"zhangsan",10,"nan"),
      //用$user[1]调用这一行,比如调用这条记录中的姓名,$user[1][1]
      array(2,"lisi",20,"nv")
     );
     //数组保存多个表,每个表有多条记录
     $info=array(
      "user"=>array(
       array(1,"zhangsan",10,"nan"),
       array(2,"lisi",20,"nv")
      ),
      "score"=>array(
       array(1,90,80,70),
       array(2,60,40,70)
      )
     
     );
     echo $info["score"][1][1];//输出60,
    ?>
    数组超级全局变量
    <?php
    /* 预定义数组:
     *  自动全局变量---超全局数组
     *
     *  1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据
     *  2.这些数组比较特别
     *  3.全局范围内自动生效,都可以直接使用这些数组
     *  4.用户不能自定义这些数组,但这些数组的操作方式和自己定义的数组操作的方式一样
     *  5.在函数中直接可以使用这些数组
     *
     * $_GET //经由URL请求提交至脚本的变量
     * $_POST  //经由HTTP POST 方法提交到脚本的变量
     * $_REQUEST //经由GET , POST和COOKIE机制提交 到脚本的变量
     * $_FILES  //经由http post方法文件上传而提交至脚本的变量
     * $_COOKIE 
     * $_SESSION 
     * $_ENV  //执行环境提交至脚本的变量
     * $_SERVER //变量由WEB服务器设定的,或直接和当前脚本的执行环境相关联
     * $GLOBALS //只要是当前脚本有效的变量都在这里,数组的键名为全局脚本的名称
     *
     *
     */
     //超全局数组在函数内部可以直接调用
     $arr=array(10,20);//一般数组
     $_GET=array(50,90);//超全局数组
     function demo(){
      global $arr;//调用全局变量要先包含
      print_r($arr);
      print_r($_GET);//直接调用超全局数组不用包含
     }
     
     
    
    ?>
    <!-- **********页面传值get请求*************** -->
    <?php
     //直接把传的值当变量用,当php.ini配置文件中register_global=on时有用。
     echo $username."<br>";
     echo $email."<br>";
     echo $page."<br>"; 
     //最稳定的取值方法
     echo $_GET["username"]."<br>";
     echo $_GET["email"]."<br>";
     echo $_GET["page"]."<br>";
    ?>
    <a href="demo.php?username=zhangsan&email=aaa@bbb.com&page=45">this is a $_GET test</a>
    <!-- ***********页面传值post请求**************** -->
    <form action="demo.php" method="post">
     username:<input type="text" name="uname" /> <br/>
     password:<input type="password" name="pass" /> <br/>
     <input type="submit" value="login" /> <br />
    </form>
    <?php 
     print_r($_GET);//不能接收到
     print_r($_POST);//这样才能接收到
    ?>
    <?php
     //$_ENV的使用
     echo'<pre>';
     print_r($_ENV);
     echo'</pre>';
     //显示当前环境
     // 也可以单个遍历
    ?>
    <?php
     //利用$GLOBALS超全局数组在函数内部调用全局变量
     $a=100;
     $b=200;
     $c=300;
     function demo()
     {
      //直接调用全局变量
      echo $GLOBALS["a"]."<br>";
      echo $GLOABLS["b"]."<br>";
      echo $GLOABLS["c"]."<br>";
      
     }
    ?>
    
    数组遍历
    <?php
    /* 数组的遍历
     *
     *  1.使用for语句循环遍历数组
     *    1.其他语言(只有这一种方式)
     *    2.PHP中这种方式不是首选的方式
     *    3.数组必须是索引数组,而且下标必须是连续的。
     *     (索引数组下标可以不连续,数组还有关联数组,这两种不能遍历)
     *
     *  2.使用foreach语句循环遍历数组
     *    foreacho(数组变量 as 变量值){
     *     //循环体
     *     }
     *     1.循环次数由数组的元素个数决定
     *     2.每一次循环都会将数组中的元素分别赋值给后面变量
     *
     *    foreach(数组变量 as 下标变量=> 值变量){
     *  }
     *
     *
     *  3.while() list() each() 组合循环遍历数组
     *
     * each()函数:
     *  1.需要一个数组作为参数
     *  2.返回来的也是一个数组
     *  3.返回来的数组是0,1,key,value四个下标(固定的)
     *    0和key下标是当前参数数组元素的键
     *    1和value下标是当前参数数组元素的值
     *  4.默认当前元素就是第一个元素
     *  5.每执行一次后就会将当前元素向后移动
     *  6.如果到最后的元素再执行这个函数,则返回false
     * list()函数:
     *  1. list()=array();需要将一个数组赋值给这个函数
     *  2.数组中的元素个数,要和list()函数中的参数个数相同
     *  3.数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量
     *  4.list()只能接受索引数组
     *  5.按索引的下标顺序来给参数赋值
     *
     *
     *
     */
     //for语句遍历数组
     $user=array(1,"zhangsan",40,"nan");
     for($i=0;$i<4;$i++)
     {
      echo"$user[{$i}]=".$user[$i]."<br>";
     }
     
     //使用foreach
     $user=array(1,"zhangsan",40,"nan");
     foreach($user as $val)//$val是自定义变量
     {
      echo $val."<br>";//输出与下标无关
     }
     foreach($user as $key=>$val)//$val $key 都是自定义变量
     {
      echo $key."=====>".$val."<br>";
     }
     
     //foreach遍历多维数组
      $info=array(
      "user"=>array(
        //$user[0]
        array(1, "zansan", 10, "nan"),
        //$user[1][1]
        array(2, "lisi", 20, "nv"),    //$user[1]
        //$user[2]
        array(3, "wangwu", 30, "nan")
      ),
      "score"=>array(
        array(1, 100, 90, 80),
        array(2, 99, 88, 11),
        array(3, 10, 50, 88)
       ),
      "connect"=>array(
        array(1, '110', 'aaa@bbb.com'),
        array(2, '120', 'bbb@ccc.com'),
        array(3, '119', 'ccc@ddd.com') 
       )
      );
    foreach($info as $tableName=>$table)
    {
     echo '<table align="center" width="500" border="1">';
     echo '<caption><h1>'.$tableName.'</h1></caption>';
     foreach($table as $row)
     {
      echo '<tr>';
      foreach($row as $col)
      {
       echo '<td>'.$col.'</td>';
      }
      echo '</tr>';
     }
     echo '</table>';
    }
     
     //each()的使用
     $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     $a=each($user);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id )  默认是第一个元素的值
     print_r($a);
     $b=each($user);
     print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 每执行一次,向后遍历一个
     
     $c=each($user);
     print_r($c);//Array ( [1] => 10 [value] => 10 [0] => age [key] => age )
     $d=each($user);
     print_r($d);//Array ( [1] => nan [value] => nan [0] => sex [key] => sex )
     $e=each($user);
     var_dump($e);//bool(false)  当没有元素时,返回的值
     //each()配合while遍历
     $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     while($arr=each($user))
     {
      //echo $arr[0]."====>".$arr[1]."<br>";//通过0,1 来显示 键(下标) 和 值
      echo $arr["key"]."===>".$arr["value"]."<br>";//通过key,value 来显示 键 值
     }
     
     //list()函数的使用
     list($name,$age,$sex)=array("zhangsan",10,"nnnnn");
     echo $name."<br>";
     echo $age."<br>";
     echo $sex."<br>";
     //另一种使用方法
     list(,,$sex)=array("zhangsan",10,"nnnnn");
     echo $sex."<br>";//只把性别转换为变量
     //ip判断
     $ip="192.168.1.128";
     list(,,,$d)=explode(".",$ip);//explode表示用 . 来分隔,并返回一个数组
     echo $d;//取出128
     //list()只能接收索引数组的例子
     $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     list($key,$value)=each($user);//Array( [1]=>1 [0]=>id) 按照索引下标的顺序给list中的参数赋值,所以先是 0键  然后是 1值
     echo $key."--->".$value;
     //while list() each()  组合使用
     $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     while(list($key,$value)=each($user))
     {
      echo $key."--->".$value."<br>";
     }
    
     //多次循环只显示一次的解决方法
     //使用数组的内部指针控制函数
     //next(数组);数组指针移动到下一个
     //prev(数组);数组指针移动到上一个
     //reset(数组);数组指针移动到第一个(复位)
     //end(数组);数组指针移动到最后一个
     //current(数组);获取当前元素的值,当前元素时指数组指针指向的元素。
     //key(数组);获取当前元素的键值(下标)
     $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     while(list($key,$value)=each($user))
     {
      echo $key."--->".$value."<br>";
     }
     //在这里将数组指针移动到第一个以下循环就能输出
     //reset($user)
     while(list($key,$value)=each($user))//因为each()到最后一个返回false,所以循环直接跳出
     {
      echo $key."--->".$value."<br>";
     } 
     while(list($key,$value)=each($user))//因为each()到最后一个返回false,所以循环直接跳出
     {
      echo $key."--->".$value."<br>";
     } 
     
     echo current($user)."=====>".key($user);
     ?>


    展开全文
  • php变量与函数

    千次阅读 2016-12-17 13:43:25
    php变量用美元符号开头,比如$value = 0 就声明一个值是0的变量,它的声明方式和JavaScript类似,不需要写类型。php的scope函数外面定义的变量,在函数内部不能使用。除非在函数内部将其定义为global比如:<?php...

    学新的语言;
    今天打算从两个切入点:变量和函数去先入门。

    php的变量用美元符号开头,比如$value = 0 就声明了一个值是0的变量,它的声明方式和JavaScript类似,不需要写类型。

    php的scope

    函数外面定义的变量,在函数内部不能使用。

    除非在函数内部将其定义为global

    比如:

    <?php
        $hello = "hello";
        function sayhi() {
            echo $hello;
        }
        sayhi();
    ?>

    这里的 echo 函数是没有输出的。而如果:

    <?php
        $hello = "hello";
        function sayhi() {
            global $hello;
            echo $hello;
        }
        sayhi();
    ?>

    在函数内部声明了 global 属性,就可以使用定义在函数外的变量。

    多说点 echo

    echo $hello.' every one';

    一个变量后面加点,再加一个字符串,意思是一起输出;一起输出的也可以是html代码,比如:

    echo $hello.'<br />';

    这就完成了输出、换行的操作。

    展开全文
  • PHP静态变量和全局变量的区别

    千次阅读 2016-07-15 14:51:10
    全局变量默认为静态变量,局部变量默认为自动变量,也可以声明为静态变量,静态变量和自动变量的区别是存储时期的区别,静态变量的存储时期是内存空间在程序运行期间都存在,程序退出才被释放;自动变量内存空间在...
  • php变量作用域

    千次阅读 2012-12-17 14:22:39
    PHP 中的每个变量都有个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的个领域。对于初学者来说,变量的作用域是它们所驻留的页面。因此,如果你定义了 $var,页面余下部分就可以访问 $var,但是...
  • php变量相关函数

    千次阅读 2014-03-12 23:56:18
    变量检测函数:  is_array 检测变量是否是数组 bool is_array(mixed $var)  is_bool 检测变量是否是布尔值 bool is_bool(mixed $val);这只有变量值为true或false时才会返回真  is_double 检测变量是否是...
  • PHP 常量与变量

    千次阅读 2015-06-25 06:52:27
    一个常量一旦被定义,就不能再改变或者取消定义。   常量只能包含标量数据(boolean,integer,float 和 string)。可以定义 resource 常量,但应尽量避免,因为会造成不可预料的结果。   可以简单的
  • 2.在函数内部创建并声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行过程中保持该值,最常见的情况就是在函数的递归执行的过程之中。 3.函数内部使用的变量声明为全局变量时,其名称要与全局变量的...
  • 关于CSS3变量 在任何语言中,变量的有一点作用都是一样的,那就是可以降低维护成本,附带还有更高性能,文件更高压缩率的...上面代码中,body选择器里面声明一个自定义变量:--color 。 它与color等正式属性没有什么
  • &lt;?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?&gt;
  • php】global的使用与php的全局变量

    千次阅读 2015-08-25 10:55:29
    php的全局变量和其余编程语言是不同的,在大多数的编程语言中,全局变量在其下的函数、类中自动生效,除非被局部变量覆盖,或者根本就不允许再声明相同名称与类型的局部变量,但是php中的全局变量不是默认生效的。...
  • PHP Global变量在实际应用中会发现许多问题需要我们不断的去完善处理。我们在这篇文章中就针对PHP Global变量出现的问题给出了一些具体的解决办法。 PHP hack的使用技巧详解 代码实现PHP GTK写文本查看器 ...
  •  看到这两个变量作用域,相信大家脑海里会浮现两个单词global&amp;static。没错,就是这两个词。 我们知道,在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本...
  • php global变量无效

    千次阅读 2016-05-10 16:50:11
    对于PHP初学者而言,在使用global关键字时,可能会发现,在函数内global一个函数外的变量,在某些情况下却无法正确输出该变量(即global变量无效)。下面我们来看一个简单而常见的例子。 在这里,我们有a.php和b....
  • 设置 PHP 常量如需设置常量,请使用 ==define(name, value)== 函数,它有三参数: - 首参数定义常量的名称 - 第二参数定义常量的值 - 可选的第三参数规定常量名是否对大小写敏感。默
  • PHP关于foreach使用引用变量的坑

    千次阅读 2016-07-29 11:42:30
    PHP好多年,但仍然会犯低级错误,今天遇到 foreach中引用变量时的坑,PHP版本为 5.6.12 代码如下:<?php $arr = ['a', 'b', 'c', 'd', 'e']; foreach ($arr as $i=>&$a) { $a = $a.'_'. $a; echo $a .' '; ...
  • php如何判断变量是否存在

    千次阅读 2019-09-26 01:45:09
    如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。 2、bool empty ( mixed $var ) 判断一个变量是否被认为是空的。...
  • 前言经过前文 菜鸟学php扩展 之 详解扩展函数的传参(如何获取参数)(三) ,基本上已经明白了php调用扩展时候...正文变量的结构与类型PHP在内核中是通过zval这结构体来存储变量的,所以写扩展的时候当然也是一样。 在Ze
  • 理解PHP变量的作用域

    千次阅读 2011-07-27 23:06:29
    理解变量的作用域作用域是指在一个脚本中某个变量可以使用或可见的范围。PHP具有6项基本的作用域规则:内置超级全局变量可以在脚本的任何地方使用和...在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内
  • PHP 7: PHP 变量和常量的定义

    千次阅读 2011-12-14 23:13:39
    本章说说变量的定义。 如果对于变量和常量的定义,你会注意几方面呢?你可能会想到: 如何定义变量,它和C# 等... PHP 中的变量一个美元符号后面跟变量名来表示。变量名是区分大小写的。例如:  $var
  • PHP重置static静态变量

    千次阅读 2018-12-05 08:46:18
    PHP重置static静态变量 1、代码: &lt;?php /** * @todo 赠送虚拟币类 */ class GivenCoin{ const NEW_REGISTER = 1; //用户注册 const PERFECT_INFO ...
  • php变量类型和作用域

    千次阅读 多人点赞 2018-11-23 18:54:14
    变量和常量 变量 变量以 $ 符号开始,后面跟着变量的名称 作用域:local(局部)、global(全局)、static(函数的局部变量)...PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称...
  • PHP中的变量和常量

    千次阅读 2012-03-04 19:56:05
    PHP中的变量和常量   几乎所有的编程语言都会涉及到变量和常量这两概念,PHP也不例外。...某一变量被定义的时候,系统会自动为该变量分配一个存储空间存放变量的值。我们可以在定义变量的时候对其赋值,如果需要改
  • PHP作为一个脚本的解释型语言,弱变量的特点和执行完释放资源的特点诸城,PHP7的强势加入更是在后端语言的群雄中掀起了一阵强烈的旋风。好了,由于本人我平时也不怎么注意变量的作用域,由此写这篇文章也算是自我...
  • PHP学习笔记2(变量

    千次阅读 2017-12-14 15:47:40
    定义变量就是向服务器的内存(服务器的内存,我们可以当做一个大仓库)申请空间(我们可以理解为一个子仓库),用来存储数据 <?php $var_name = “苹果”; $n = 10; ?> 变量的命名规则 需要“$”进行标识 变量名...
  • PHP是一门简单而强大的语言,提供了很Web适用的语言特性,其中就包括了变量弱类型,在弱类型机制下,你能够给一个变量赋任意类型的值。  PHP的执行是通过Zend Engine(下面简称ZE),ZE是使用C编写,在底层...
  • PHP系列教程】(4)——PHP变量

    千次阅读 2010-01-08 17:00:00
     、基础知识PHP 中一个美元符号后面跟上一个变量名称,即表示一个变量。变量的名称是对大小写敏感的。 变量名与 PHP 中其它的标签一样遵循相同的规则。个有效的变量名由字母或者下划线开头,后面跟上任意数量的...
  • 首先开始介绍php的生命周期,了解一个php程序从开始运行到最后结束究竟经过怎么样的过程,对学习php和平时php开发应该是很...对于每扩展而言,都会有一个初始化MINT函数,这过程会声明变量、类,注册资源、流和过
  • php判断变量是否存在

    千次阅读 2018-07-25 08:52:51
    主要包含三方法isset,empty,is_null 写这篇的目的主要是为了在平时做健壮性的时候的一些总结,举例子肯定简单,因为已经知道此数据的结构,但是实操中情况非常复杂不知道过来的是什么结构的数据...如果一次传入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,670
精华内容 23,468
关键字:

一次声明多个变量php