Hướng dẫn how to add object in php - cách thêm đối tượng vào php

Điều này phải đơn giản, nhưng dường như tôi không thể tìm thấy câu trả lời ....

Tôi có một đối tượng STDCLASS chung

$foo = new StdClass();
$foo->bar = '1234';
5 không có thuộc tính. Tôi muốn thêm một thuộc tính mới
$foo = new StdClass();
$foo->bar = '1234';
6 vào nó chưa được xác định. Nếu tôi làm điều này:

$foo = new StdClass();
$foo->bar = '1234';

PHP trong chế độ nghiêm ngặt phàn nàn.

Cách thích hợp (bên ngoài khai báo lớp) để thêm thuộc tính vào một đối tượng đã khởi tạo là gì?

Lưu ý: Tôi muốn giải pháp hoạt động với đối tượng PHP chung của loại stdclass.

Một chút nền tảng về vấn đề này. Tôi đang giải mã một chuỗi JSON là một loạt các đối tượng JSON.

$foo = new StdClass();
$foo->bar = '1234';
7 tạo ra một mảng đối tượng STDClass. Tôi cần điều khiển các đối tượng này và thêm một thuộc tính cho từng đối tượng.

Hướng dẫn how to add object in php - cách thêm đối tượng vào php

Hakre

Phù bằng vàng 188K50420 Huy hiệu bạc810 Huy hiệu Đồng50 gold badges420 silver badges810 bronze badges

hỏi ngày 23 tháng 7 năm 2012 lúc 18:32Jul 23, 2012 at 18:32

Hướng dẫn how to add object in php - cách thêm đối tượng vào php

4

Nếu bạn hoàn toàn phải thêm thuộc tính vào đối tượng, tôi tin rằng bạn có thể chọn nó dưới dạng mảng, thêm thuộc tính của bạn (làm khóa mảng mới), sau đó chọn nó trở lại làm đối tượng. Lần duy nhất bạn chạy vào các đối tượng

$foo = new StdClass();
$foo->bar = '1234';
8 (tôi tin) là khi bạn chọn một mảng làm đối tượng hoặc khi bạn tạo một đối tượng
$foo = new StdClass();
$foo->bar = '1234';
8 mới từ đầu (và tất nhiên là khi bạn
$foo = new StdClass();
$foo->bar = '1234';
7 điều gì đó - ngớ ngẩn tôi đã quên!).

Thay vì:

$foo = new StdClass();
$foo->bar = '1234';

Bạn sẽ làm:

$foo = array('bar' => '1234');
$foo = (object)$foo;

Hoặc nếu bạn đã có một đối tượng STDClass hiện có:

$foo = (array)$foo;
$foo['bar'] = '1234';
$foo = (object)$foo;

Cũng như một lớp lót 1:

$foo = (object) array_merge( (array)$foo, array( 'bar' => '1234' ) );

Đã trả lời ngày 23 tháng 7 năm 2012 lúc 18:45Jul 23, 2012 at 18:45

WwwwwwWWW

9.5041 Huy hiệu vàng28 Huy hiệu bạc32 Huy hiệu đồng1 gold badge28 silver badges32 bronze badges

6

Làm như thế này:

$foo = new stdClass();
$foo->{"bar"} = '1234';

bây giờ cố gắng:

echo $foo->bar; // should display 1234

Đã trả lời ngày 15 tháng 9 năm 2015 lúc 8:55Sep 15, 2015 at 8:55

Hướng dẫn how to add object in php - cách thêm đối tượng vào php

JM R.JM R.JM R.

1.5411 huy hiệu vàng9 Huy hiệu bạc1 gold badge9 silver badges4 bronze badges

7

Nếu bạn muốn chỉnh sửa JSON được giải mã, hãy thử lấy nó như một mảng kết hợp thay vì một mảng các đối tượng.

$data = json_decode($json, TRUE);

Đã trả lời ngày 23 tháng 7 năm 2012 lúc 18:57Jul 23, 2012 at 18:57

gen_Ericgen_Ericgen_Eric

Phim thương hiệu vàng 218K4040 gold badges297 silver badges336 bronze badges

Đây là một cách khác:

$foo = (object)null; //create an empty object
$foo->bar = "12345";

echo $foo->bar; //12345

Đã trả lời ngày 17 tháng 8 năm 2016 lúc 18:18Aug 17, 2016 at 18:18

Hướng dẫn how to add object in php - cách thêm đối tượng vào php

RagnarragnarRagnar

4.1831 Huy hiệu vàng25 Huy hiệu bạc39 Huy hiệu đồng1 gold badge25 silver badges39 bronze badges

Bạn nên sử dụng các phương thức ma thuật __set và __get. Ví dụ đơn giản:

class Foo
{
    //This array stores your properties
private $content = array();

public function __set($key, $value)
{
            //Perform data validation here before inserting data
    $this->content[$key] = $value;
    return $this;
}

public function __get($value)
{       //You might want to check that the data exists here
    return $this->$content[$value];
}

}

Tất nhiên, đừng sử dụng ví dụ này như thế này: không có bảo mật nào cả :)

Chỉnh sửa: Xem nhận xét của bạn, đây có thể là một giải pháp thay thế dựa trên sự phản ánh và một người trang trí:

$foo = new StdClass();
$foo->bar = '1234';
0

Tái bút: Tôi đã không kiểm tra mã của mình, chỉ là ý tưởng chung ...

Đã trả lời ngày 23 tháng 7 năm 2012 lúc 18:37Jul 23, 2012 at 18:37

2

Tôi không biết liệu phiên bản mới của PHP mới hơn, nhưng điều này hoạt động. Tôi đang sử dụng Php 5.6

$foo = new StdClass();
$foo->bar = '1234';
1

Đây là kết quả. Phương thức lưu thực sự có được thuộc tính mới

$foo = new StdClass();
$foo->bar = '1234';
2

Đã trả lời ngày 18 tháng 12 năm 2015 lúc 7:49Dec 18, 2015 at 7:49

Hướng dẫn how to add object in php - cách thêm đối tượng vào php

GangagangaGanga

Phù hiệu bằng đồng 1133 bronze badges

1

Có, có thể tự động thêm các thuộc tính vào đối tượng PHP.

Điều này rất hữu ích khi nhận được một phần đối tượng từ JavaScript.

Phía JavaScript:

$foo = new StdClass();
$foo->bar = '1234';
3

PHP bên:

$foo = new StdClass();
$foo->bar = '1234';
4

Hoặc chỉ gửi một thuộc tính giả từ JavaScript mà bạn sẽ điền vào PHP.

Đã trả lời ngày 19 tháng 7 năm 2014 lúc 11:53Jul 19, 2014 at 11:53

Adrian Cumpanasuadrian CumpanasuAdrian Cumpanasu

1.0101 Huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng1 gold badge10 silver badges24 bronze badges

2

Chúng ta có thể tạo đối tượng trong PHP không?

Chúng ta có thể tạo nhiều đối tượng từ một lớp. Mỗi đối tượng có tất cả các thuộc tính và phương thức được xác định trong lớp, nhưng chúng sẽ có các giá trị thuộc tính khác nhau. Đối tượng của một lớp được tạo bằng cách sử dụng từ khóa mới.. Each object has all the properties and methods defined in the class, but they will have different property values. Objects of a class is created using the new keyword.

Đối tượng trong PHP với ví dụ là gì?

Một đối tượng là một thể hiện riêng lẻ của cấu trúc dữ liệu được xác định bởi một lớp.Chúng tôi xác định một lớp một lần và sau đó tạo ra nhiều đối tượng thuộc về nó.Đối tượng còn được gọi là trường hợp.an individual instance of the data structure defined by a class. We define a class once and then make many objects that belong to it. Objects are also known as instances.

PHP có đối tượng không?

PHP là một ngôn ngữ định hướng đối tượng, mặc dù nó không phải được sử dụng làm một ngôn ngữ, vì hầu hết các hàm PHP không được định hướng đối tượng.Trong lập trình hướng đối tượng, một lớp là một định nghĩa của một đối tượng, trong khi một đối tượng là một thể hiện của một đối tượng, có nghĩa là từ một lớp, bạn có thể tạo nhiều đối tượng., although it does not have to be used as one, since most PHP functions are not object oriented. In object oriented programming, a class is a definition of an object, whereas an object is an instance of an object, meaning that from one class you can create many objects.

Chúng ta có thể tạo đối tượng mà không có lớp trong PHP không?

Sử dụng stdclass () mới để tạo một đối tượng không có lớp: để tạo một đối tượng không có lớp, chúng tôi sẽ sử dụng toán tử stdclass () mới và sau đó thêm một số thuộc tính vào chúng.Cú pháp: // Tạo một đối tượng $ Object = new stdClass ();// thuộc tính được thêm vào đối tượng $ object-> property = 'property_value';: For creating an object without a class, we will use a new stdClass() operator and then add some properties to them. Syntax: // Creating an object $object = new stdClass(); // Property added to the object $object->property = 'Property_value';