1,例項化物件時候,括號主要是為了傳入引數。
如果建構函式有引數就必須要括號,如果沒有引數,加不加括號效果都相同。
<?php$arr = ;
$arr[0]='a';
$arr[1]='b';
$jsonstr = json_encode($arr);
echo $jsonstr;
echo "
";echo json_encode($arr,json_force_object);
/***
*/class ceshi
function say() }
$person = new ceshi('changliang');
$person->say();
echo json_encode($person);
?>
2,json_encode 不加option引數,會自動根據給定的型別進行轉換。比如陣列他就轉換為陣列,物件就轉換為物件型別的json。
3,class ceshi function say()}
$person = new ceshi('changliang');
$person->say();
4,關於 json 這個問題,陸陸續續有新手朋友找我問,比如為什麼我輸出的是而不是
["item1","item2","item3"]
。
我這裡用 php 5.4 以上語法表示。php 裡有關聯陣列和索引陣列,例如:
文字
<?php
// 索引陣列
$arr = ['item1', 'item2', 'item3'];
// 關聯陣列
$arr = [
'name' => '張三',
'age' => '22',
];
而 js 裡只有一種陣列,那就是索引陣列,也許你會說可以用 k/v 鍵值對形式模擬關聯陣列啊。
k/v 鍵值對看起來像,但他沒有任何陣列特性,這裡就不詳細說明了。
而上面的 php 陣列json_encode
後得到的 json 格式分別是["item1","item2","item3"]
和。這裡的中文被轉為 unicode 了,如果你非要顯示中文,php 5.4 之後支援
json_unescaped_unicode
引數,json_encode($arr, json_unescaped_unicode)
即可得到,不過非常不推薦這樣寫。
這裡分別得到的是 js 下的陣列和物件格式的 json 字串,那為什麼會生成這兩種型別,或者說,什麼情況會生成物件格式,什麼情況會生成陣列格式呢。
大致幾種情況我都列出來了,直接看**。
文字
<?php
$arr = [ // 不是 0 開始,會輸出物件
1 => 'item1',
2 => 'item2',
3 => 'item3',
];echo "輸出物件: ", json_encode($arr), "\n";
// 輸出物件:
$arr = [ // 連續索引,輸出陣列
0 => 'item1',
1 => 'item2',
2 => 'item3',
];echo "輸出陣列: ", json_encode($arr), "\n";
// 輸出陣列: ["item1","item2","item3"]
$arr = [ // 連續索引,輸出陣列
'item1',
'item2',
'item3',
];echo "輸出陣列: ", json_encode($arr), "\n";
// 輸出陣列: ["item1","item2","item3"]
$arr = [ // 索引不連續,輸出物件
0 => 'item1',
1 => 'item2',
2 => 'item3',
5 => 'item5',
];echo "輸出物件: ", json_encode($arr), "\n";
// 輸出物件:
$arr = [ // 包含關聯索引,一定輸出物件
0 => 'item1',
1 => 'item2',
2 => 'item3',
'other' => '其他字段'
];echo "輸出物件: ", json_encode($arr), "\n";
// 輸出物件:
// 關聯陣列 + 索引陣列 例項
$arr = [ // 關聯陣列
'other' => '其他字段',
'count' => 3, // 陣列個數
'list' => [ // 索引陣列
'item1',
'item2',
'item3',
],];
關於 json 這個問題,陸陸續續有新手朋友找我問,比如為什麼我輸出的是而不是
["item1","item2","item3"]
。
我這裡用 php 5.4 以上語法表示。php 裡有關聯陣列和索引陣列,例如:
文字
<?php
// 索引陣列
$arr = ['item1', 'item2', 'item3'];
// 關聯陣列
$arr = [
'name' => '張三',
'age' => '22',
];
而 js 裡只有一種陣列,那就是索引陣列,也許你會說可以用 k/v 鍵值對形式模擬關聯陣列啊。
k/v 鍵值對看起來像,但他沒有任何陣列特性,這裡就不詳細說明了。
而上面的 php 陣列json_encode
後得到的 json 格式分別是["item1","item2","item3"]
和。這裡的中文被轉為 unicode 了,如果你非要顯示中文,php 5.4 之後支援
json_unescaped_unicode
引數,json_encode($arr, json_unescaped_unicode)
即可得到,不過非常不推薦這樣寫。
這裡分別得到的是 js 下的陣列和物件格式的 json 字串,那為什麼會生成這兩種型別,或者說,什麼情況會生成物件格式,什麼情況會生成陣列格式呢。
大致幾種情況我都列出來了,直接看**。
文字
<?php
$arr = [ // 不是 0 開始,會輸出物件
1 => 'item1',
2 => 'item2',
3 => 'item3',
];echo "輸出物件: ", json_encode($arr), "\n";
// 輸出物件:
$arr = [ // 連續索引,輸出陣列
0 => 'item1',
1 => 'item2',
2 => 'item3',
];echo "輸出陣列: ", json_encode($arr), "\n";
// 輸出陣列: ["item1","item2","item3"]
$arr = [ // 連續索引,輸出陣列
'item1',
'item2',
'item3',
];echo "輸出陣列: ", json_encode($arr), "\n";
// 輸出陣列: ["item1","item2","item3"]
$arr = [ // 索引不連續,輸出物件
0 => 'item1',
1 => 'item2',
2 => 'item3',
5 => 'item5',
];echo "輸出物件: ", json_encode($arr), "\n";
// 輸出物件:
$arr = [ // 包含關聯索引,一定輸出物件
0 => 'item1',
1 => 'item2',
2 => 'item3',
'other' => '其他字段'
];echo "輸出物件: ", json_encode($arr), "\n";
// 輸出物件:
// 關聯陣列 + 索引陣列 例項
$arr = [ // 關聯陣列
'other' => '其他字段',
'count' => 3, // 陣列個數
'list' => [ // 索引陣列
'item1',
'item2',
'item3',
],];
今日學習筆記
關於spring boot專案利用集群模式部署的問題 redis 簡介 redis優勢 開啟資料夾,內容如下 開啟乙個cmd視窗 使用 cd 命令切換目錄到c redis執行 redis server.exe redis.windows.conf 如果想方便的話,可以把 redis 的路徑加到系統的...
今日學習筆記
在servlet層給儲存和編輯功能做區分打標 由於儲存和編輯的功能在servlet層中被編寫到了一起,在呼叫過程中為了達到對兩種功能的區分,則通過給兩個功能打標的方式,實現區分調取 功能中新增 functionadd else service voidedituser useruser throws...
今日學習筆記
理由limit函式實現分頁控制 select from userinfo limit 0,10 第乙個數字是從第幾個數字開始查,第二個數字表示往後查幾條資料 假設兩個數字分別是a和b,那麼如果要實現分頁控制,則在這裡a表示頁數,b是每頁顯示的條數 limit x a 1 b limit y b 在我...