3 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
這將在對(duì)象數(shù)組的末尾追加新對(duì)象
$objectArray[] = $newObject;
如果要向?qū)ο筇砑有聦傩?,只需?zhí)行以下操作:
$object->newPropery = 'value';

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
你在這里有兩個(gè)選擇。第一個(gè)只是一個(gè)array. PHP 中的數(shù)組是關(guān)聯(lián)的,因此它們可以使用字符串作為鍵,而不僅僅是數(shù)字。你會(huì)做這樣的事情:
$people = [
[
'name' => 'Jane Smith',
'age' => 20,
],
[
'name' => 'Mary Sue',
'age' => 30
]
]
要添加一些像這樣的數(shù)組,你可以只定義一個(gè)新的關(guān)鍵:$people[0]['height'] = 2;。如果您愿意,您還可以使用for循環(huán)(或foreach帶引用的)根據(jù)某些公式將其添加到每個(gè)人。
然而,這有點(diǎn)不合時(shí)宜,因?yàn)閿?shù)組構(gòu)成了糟糕的數(shù)據(jù)結(jié)構(gòu):沒有關(guān)于可以在其中包含哪些數(shù)據(jù)、可以使用該數(shù)據(jù)做什么等的預(yù)定義信息。相反,您通常需要聲明一個(gè)類,至少像這樣:
class Person
{
public $name;
public $age;
public $height;
}
然后,你可以創(chuàng)建$person = new Person();和設(shè)置使用箭頭語(yǔ)法的值:$person->name = 'Jane Smith';。理想情況下,您還希望構(gòu)造函數(shù)接受初始值和 setter/getter,以便驗(yàn)證傳遞到對(duì)象中的數(shù)據(jù),而不是盲目地接受給出的任何值,但這可能會(huì)在以后出現(xiàn)。
這是你的兩個(gè)選擇。通常,為快速和臟的臨時(shí)數(shù)據(jù)結(jié)構(gòu)選擇數(shù)組,為更復(fù)雜和持久的數(shù)據(jù)選擇對(duì)象。由于我看不到您想用這些數(shù)據(jù)做什么,我不能嚴(yán)格地說是數(shù)組還是對(duì)象最適合這里。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
它已經(jīng)很舊了,但還有一個(gè)沒有提到的選擇。
你可以實(shí)現(xiàn)你在python中檢查過的方式
所以為了創(chuàng)建以下對(duì)象:(Python)
obj = {
"name": "john";
}
print(obj.name);
我們將要做的:(PHP)
$obj = '{
"name": "john"
}';
$obj = json_decode($obj);
echo $obj->name;
因?yàn)樵?python 和 javascript 以及其他語(yǔ)言中,我猜他們對(duì)對(duì)象使用 json 格式。php 有一個(gè)內(nèi)置函數(shù)可以將 json 字符串轉(zhuǎn)換為對(duì)象,所以我們只需要將已知格式轉(zhuǎn)換為字符串并告訴 php 解析它,我們最終會(huì)得到相同的結(jié)果。
現(xiàn)在如果我們想向?qū)ο筇砑右恍〇|西,可以通過以下方式完成:
$obj->age = 22;
var_dump($obj);
輸出:
object(stdClass)#4 (2) {
["name"]=>
string(4) "john"
["age"]=>
int(22)
}
- 3 回答
- 0 關(guān)注
- 1041 瀏覽
添加回答
舉報(bào)