zoukankan      html  css  js  c++  java
  • 第三节:类型数组:数组的高级应用

    如果你不给数组键名加',默认情况下PHP也不会报错,而会自动进行取代,给他加上'。但是这种情况是要极力杜绝的,很容易产生混淆。

    <?php
    $arr=array('fruit'=>'apple','veggie'=>'carrot');
    print $arr['fruit'];       //apple
    print $arr['veggie'];  //carrot
    print $arr[fruit];       //applle
    define('fruit','veggie');
    print $arr['fruit']     //apple
    print $arr[fruit]     //carrot
    ?>
    

     

    转换为数组

    对于任意类型:integer,float,string,boolean and resource,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其小标为0),该元素即为此标量的值。(arrary)$scalarValue与array($scalarValue)完全一样。

    NULL 转换到 数组(array) 会得到一个空的数组。 

    Object转换为数组会有两种形态:

    如果一个对象被转换为一个数组,其结果是一个数组,其元素是对象的属性。键的成员变量的名称,有几个显着的例外:整数性能是不可访问的,私有变量的类名前缀的变量名,受保护的变量有“*”符号的变量名。这些前缀的值必须在任何一方的空字节。这可能会导致一些意想不到的行为:

     1 <?php
     2 
     3 class A {
     4     private $A; // This will become '\0A\0A'
     5 }
     6 
     7 class B extends A {
     8     private $A; // This will become '\0B\0A'
     9     public $AA; // This will become 'AA'
    10 }
    11 
    12 var_dump((array) new B());
    13 ?> 

    输出:array(3) { ["BA"]=> NULL ["AA"]=> NULL ["AAAAA"]=> NULL }

     1 <?php
     2 
     3 class A {
     4     private $AAAA; // This will become '\0A\0A'
     5 }
     6 
     7 class B extends A {
     8     private $A; // This will become '\0B\0A'
     9     public $AA; // This will become 'AA'
    10 }
    11 $a=&new B();
    12 var_dump(array($a));
    13 ?> 

    输出:array(1) { [0]=> object(B)#1 (3) { ["A:private"]=> NULL ["AA"]=> NULL ["AAAA:private"]=> NULL } }

  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/saw2012/p/2861303.html
Copyright © 2011-2022 走看看