国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php中類的屬性居然可以為數字?

2020-03-22 20:03:27
字體:
來源:轉載
供稿:網友
  • 最近用curl開發rest方式的api的時候,經常用到json編碼,發現了一個奇怪的問題。

    大家應該都知道一個數組,經過 json_encode 然后 json_decode 以后會變成一個 對象 ,其中鍵名變成對象的屬性名,

    到這里奇怪的事情要發生了,如果這個數組是數字索引的,那么就會出現文中的正題了。

    比如下邊的這段代碼:

    /*PHP Version 5.3.10*/	$a[3] = array('id'=>'3','name'=>'hello','description'=>'fasdf');	$m = json_encode($a);			//echo $m;        ////$m 的值是 {"3":{"id":"3","name":"hello","description":"fasdf"}}object(stdClass)#1 (1) { ["3"]=> object(stdClass)#2 (3) { ["id"]=> string(1) "3" ["name"]=> string(5) "hello" ["description"]=> string(5) "fasdf" } }	$n = json_decode($m);	var_dump($n);	//輸出結果為object(stdClass)#1 (1) { ["3"]=> object(stdClass)#2 (3) { ["id"]=> string(1) "3" ["name"]=> string(5)"hello" ["description"]=> string(5) "fasdf" } }

    看到奇怪的現象了吧,["3"]=> object(stdClass)#2 !
    其中$n是一個對象,他有一個屬性,屬性名為3。

    OK,接下來大膽假設,類里邊可不可以直接定義數字屬性呢?

    html' target='_blank'>class A {
    public $3 = 3;
    }

    報錯:
    Parse error: syntax error, unexpected ‘$’, expecting T_VARIABLE in t.php on line 18

    再假設,將屬性名偽裝:

    class A {
    public function __construct() {
    $m = "3";
    $this->$m=3;
    }
    }
    發現可以成功運行,繼續修改:

    class A {
    public function __construct() {
    $m = "3";
    $this->$m=3;
    }
    }
    $a = new A();
    var_dump($a);
    //輸出結果object(A)#3 (1) { ["3"]=> int(3) }
    求解釋這個是什么現象呢?

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 保靖县| 扎囊县| 綦江县| 民丰县| 南川市| 夏河县| 镇江市| 乌海市| 南阳市| 桂东县| 济源市| 龙岩市| 沂源县| 广灵县| 肃宁县| 德钦县| 长葛市| 准格尔旗| 泗洪县| 高陵县| 禹城市| 阆中市| 铁力市| 乐山市| 阿鲁科尔沁旗| 武平县| 亳州市| 儋州市| 土默特右旗| 灵山县| 咸阳市| 朝阳市| 平乐县| 沙田区| 大关县| 尚义县| 沂南县| 义乌市| 清流县| 吉安市| 绥芬河市|