Tôi có một chức năng kéo các hàng từ cơ sở dữ liệu, nội dung-> id và nội dung-> loại được sử dụng để gọi điện động Amethod trong một mô hình đã được tải để lấy và định dạng chi tiết đối tượng. Khi đối tượng được trả về, nó được thêm vào mảng. Tất cả đều tốt, ngoại trừ khi tôi đến sử dụng mảng mặc dù nó có số lượng mục chính xác trong đó, tất cả chúng đều chứa cùng một đối tượng mặc dù tôi biết rằng chúng được trả lại khác nhau. Tôi hoàn toàn mất mát với điều này, bất kỳ sự giúp đỡ/ý tưởng nào cũng tuyệt vời!
Mã dưới đây:
foreach[$query->result[] as $content]
{
$item = $this->{'mod_'.$content->type}->get[$content->id];
print_r[$item];
$items[] = $item;
}
print_r[$items];
Và các câu lệnh print_r tạo ra điều này:
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
Đã hỏi ngày 30 tháng 6 năm 2009 lúc 17:07Jun 30, 2009 at 17:07
1
Tôi đoán rằng vấn đề là bạn có cùng một đối tượng mỗi lần bằng cách tham chiếu từ hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
0 và sau đó thêm nó bằng cách tham chiếu đến mảng, dẫn đến tất cả các mục trong mảng được sửa đổi khi mục được sửa đổi trong hàm stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
0 . Nếu đó là trường hợp, những điều sau đây sẽ hoạt động:foreach[$query->result[] as $content]
{
$item = $this->{'mod_'.$content->type}->get[$content->id];
print_r[$item];
$items[] = clone $item;
}
print_r[$items];
Đã trả lời ngày 30 tháng 6 năm 2009 lúc 17:17Jun 30, 2009 at 17:17
Mikael Aunomikael AunoMikael Auno
8.8602 Huy hiệu vàng20 Huy hiệu bạc16 Huy hiệu Đồng2 gold badges20 silver badges16 bronze badges
0
Khi bạn đẩy $ mục sang các mục $, nó không đẩy các điểm giá trị $ mà chính là tham chiếu. Bạn sẽ cần khởi tạo $ Item mỗi lần:
foreach[$query->result[] as $content]
{
$item = new stdClass[];
$item = $this->{'mod_'.$content->type}->get[$content->id];
print_r[$item];
$items[] = $item;
}
print_r[$items];
Đã trả lời ngày 30 tháng 6 năm 2009 lúc 17:18Jun 30, 2009 at 17:18
MoshibinmoshibinMoshiBin
3.0372 Huy hiệu vàng20 Huy hiệu bạc23 Huy hiệu đồng2 gold badges20 silver badges23 bronze badges
2
Bạn có thể đang trả lại các tài liệu tham khảo cho mục, không phải các mục. Nó sẽ luôn luôn là tài liệu tham khảo cuối cùng mà $ item trỏ đến.
Đã trả lời ngày 30 tháng 6 năm 2009 lúc 17:15Jun 30, 2009 at 17:15
CGPCGPcgp
40.7K11 Huy hiệu vàng100 Huy hiệu bạc131 Huy hiệu Đồng11 gold badges100 silver badges131 bronze badges
- Tạo một mảng các đối tượng lớp trong php
- Tạo một mảng các đối tượng
2 trong PHPstdClass Object [ [id] => 30 [type] => page ] stdClass Object [ [id] => 29 [type] => page ] Array [ [0] => stdClass Object [ [id] => 29 [type] => page ] [1] => stdClass Object [ [id] => 29 [type] => page ] ]
- Tạo một mảng đối tượng bằng hàm
3 trong PHPstdClass Object [ [id] => 30 [type] => page ] stdClass Object [ [id] => 29 [type] => page ] Array [ [0] => stdClass Object [ [id] => 29 [type] => page ] [1] => stdClass Object [ [id] => 29 [type] => page ] ]
Bài viết này sẽ giới thiệu các phương thức để tạo một mảng các đối tượng trong PHP.
Tạo một mảng các đối tượng lớp trong php
Tạo một mảng các đối tượng
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
2 trong PHPTạo một mảng đối tượng bằng hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 trong PHPBài viết này sẽ giới thiệu các phương thức để tạo một mảng các đối tượng trong PHP.
Chúng ta có thể sử dụng hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 để tạo một mảng các đối tượng trong PHP. Hàm sẽ lấy đối tượng làm đối số và sẽ tạo ra một mảng các đối tượng đó. Chúng ta có thể tạo các đối tượng bằng cách tạo một lớp và xác định một số thuộc tính của lớp. Các thuộc tính của lớp sẽ có một số giá trị. Cuối cùng, các thuộc tính và giá trị sẽ tạo thành một cặp giá trị khóa trong mảng.
Output:
Array
[
[0] => Motorcycle Object
[
[name] => Husqvarna
[type] => dirt
]
[1] => Motorcycle Object
[
[name] => Goldwing
[type] => touring
]
]
Tạo một mảng các đối tượng stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
2 trong PHP
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
Tạo một mảng đối tượng bằng hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 trong PHPBài viết này sẽ giới thiệu các phương thức để tạo một mảng các đối tượng trong PHP.
Chúng ta có thể sử dụng hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 để tạo một mảng các đối tượng trong PHP. Hàm sẽ lấy đối tượng làm đối số và sẽ tạo ra một mảng các đối tượng đó. Chúng ta có thể tạo các đối tượng bằng cách tạo một lớp và xác định một số thuộc tính của lớp. Các thuộc tính của lớp sẽ có một số giá trị. Cuối cùng, các thuộc tính và giá trị sẽ tạo thành một cặp giá trị khóa trong mảng.Chúng ta có thể sử dụng hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 để tạo một mảng các đối tượng trong PHP. Hàm sẽ lấy đối tượng làm đối số và sẽ tạo ra một mảng các đối tượng đó. Chúng ta có thể tạo các đối tượng bằng cách tạo một lớp và xác định một số thuộc tính của lớp. Các thuộc tính của lớp sẽ có một số giá trị. Cuối cùng, các thuộc tính và giá trị sẽ tạo thành một cặp giá trị khóa trong mảng.
Ouput:
Array
[
[0] => stdClass Object
[
[name] => Husqvarna
[type] => dirt
]
[1] => stdClass Object
[
[name] => Goldwing
[type] => touring
]
]
Tạo một mảng đối tượng bằng hàm stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 trong PHP
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
Bài viết này sẽ giới thiệu các phương thức để tạo một mảng các đối tượng trong PHP.
Chúng ta có thể sử dụng hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 để tạo một mảng các đối tượng trong PHP. Hàm sẽ lấy đối tượng làm đối số và sẽ tạo ra một mảng các đối tượng đó. Chúng ta có thể tạo các đối tượng bằng cách tạo một lớp và xác định một số thuộc tính của lớp. Các thuộc tính của lớp sẽ có một số giá trị. Cuối cùng, các thuộc tính và giá trị sẽ tạo thành một cặp giá trị khóa trong mảng.Chúng ta có thể sử dụng hàm
stdClass Object
[
[id] => 30
[type] => page
]
stdClass Object
[
[id] => 29
[type] => page
]
Array
[
[0] => stdClass Object
[
[id] => 29
[type] => page
]
[1] => stdClass Object
[
[id] => 29
[type] => page
]
]
3 để tạo một mảng các đối tượng trong PHP. Hàm sẽ lấy đối tượng làm đối số và sẽ tạo ra một mảng các đối tượng đó. Chúng ta có thể tạo các đối tượng bằng cách tạo một lớp và xác định một số thuộc tính của lớp. Các thuộc tính của lớp sẽ có một số giá trị. Cuối cùng, các thuộc tính và giá trị sẽ tạo thành một cặp giá trị khóa trong mảng.
Output:
Array
[
[0] => Motorcycle Object
[
[name] => Husqvarna
[type] => dirt
]
[1] => Motorcycle Object
[
[name] => Goldwing
[type] => touring
]
]