Hướng dẫn how to access stdclass object in php – cách truy cập đối tượng stdclass trong php

Tôi có một đối tượng STDCLASS như hình dưới đây:

Nội dung chính

Show

  • Làm thế nào để bạn có được đối tượng STDCLASS?
  • Làm thế nào để bạn truy cập các thuộc tính của một đối tượng trong PHP?
  • Đối tượng STDCLASS trong PHP là gì?
  • Làm thế nào để bạn gọi một mảng các đối tượng trong PHP?
stdClass Object
(     
    [text] => Parent
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Laurence W. Lane Jr.
                    [url] => http://www.freebase.com/view/m/0c02911
                )

        )

)

Tôi lặp lại nhiều đối tượng như vậy, một số trong đó có

stdClass Object
(
    [text] => Named after
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Stanford
                    [url] => SomeURL
                )

        )

)

Tôi đã tự hỏi làm thế nào tôi sẽ truy cập vào đối tượng “giá trị” nếu nó xuất hiện sau một “văn bản” có “cha mẹ” là giá trị của nó?

Đã hỏi ngày 3 tháng 5 năm 2011 lúc 21:13May 3, 2011 at
21:13

Hướng dẫn how to access stdclass object in php - cách truy cập đối tượng stdclass trong php

5

Có những cách máy chủ để biến nó thành mảng:

Giải pháp đầu tiên:

stdClass Object
(
    [text] => Named after
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Stanford
                    [url] => SomeURL
                )

        )

)

3

Giải pháp thứ hai:

$value = (array) $object;

Giải pháp thứ ba

$value = json_decode(json_encode($object), true);

Để nhận giá trị của mảng đã chuyển đổi

echo $value['values']['0']['id'];

Cách khác để truy cập các đối tượng VAR mà không cần chuyển đổi đối tượng, hãy thử

$object->values->{'0'}->id

Đã trả lời ngày 26 tháng 2 năm 2013 lúc 16:41Feb 26, 2013 at 16:41

2

Mở rộng (hoặc đúng hơn là tối thiểu) Khi trả lời bởi Somwang Souksavatd, tôi thích truy cập các giá trị đối tượng như thế này:

echo get_object_vars($object)['values']['0']['id'];

Đã trả lời ngày 15 tháng 2 năm 2014 lúc 22:38Feb 15, 2014 at 22:38

1

Tôi đã có cùng một vấn đề, vẫn không chắc tại sao nhưng tôi có thể giúp nó hoạt động bằng cách sử dụng cách giải quyết này:

$k2 ="1";
$elements = json_decode('{"id":"1","name":"User1"}');
//$elements['id'] == $k2;  //****Not Working
$tmp  = (object)$elements;
$tmp = $tmp ->id;          //****Working
//$tmp =$elements['id'] ;  //****Not Working
return $tmp == $k2;

Tôi phải nói rằng đôi khi truy cập phần tử khi mảng hoạt động và một số lần thì không, (trên PHP7, nó đã hoạt động cho tôi nhưng trên PHP5.6 thì không).

stdClass Object
(
    [text] => Named after
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Stanford
                    [url] => SomeURL
                )

        )

)

4 có thể là mảng nhưng tôi đã chọn chứng minh với chuỗi JSON.

Tôi hy vọng điều này sẽ giúp bằng cách nào đó !!!

Đã trả lời ngày 2 tháng 3 năm 2016 lúc 7:56Mar 2, 2016 at 7:56

Hướng dẫn how to access stdclass object in php - cách truy cập đối tượng stdclass trong php

Pini Cheynipini CheyniPini Cheyni

4.6762 Huy hiệu vàng38 Huy hiệu bạc54 Huy hiệu Đồng2 gold badges38 silver badges54 bronze badges



        $Obj=stdClass Object
    (
        [text] => Named after
        [values] => Array
            (
                [0] => stdClass Object
                    (
                        [id] => /m/0c02911
                        [text] => Stanford
                        [url] => SomeURL
                    )

            )

    )
    $Values= $result->values;
    $Item = $Values[0];
    $id=$Item->id;
    $text = $Item->text;
    $url=$Item->url;


Đã trả lời ngày 31 tháng 5 năm 2013 lúc 4:53May 31, 2013 at 4:53

Tôi đang làm điều tương tự và tất cả những gì tôi đã làm là thế này;

<?php
$stdObject = json_decode($stdClassObject);
print $stdObject->values[0]->id;

Đã trả lời ngày 1 tháng 11 năm 2013 lúc 13:33Nov 1, 2013 at 13:33

Hướng dẫn how to access stdclass object in php - cách truy cập đối tượng stdclass trong php

pythonian29033pythonian29033pythonian29033

5.0695 Huy hiệu vàng30 Huy hiệu bạc56 Huy hiệu Đồng5 gold badges30 silver badges56 bronze badges

Điều này có thể giúp bạn truy cập SubArrays trong PHP bằng cách sử dụng Framework Codeigniter

stdClass Object
(
    [text] => Named after
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Stanford
                    [url] => SomeURL
                )

        )

)

0

Đã trả lời ngày 2 tháng 9 năm 2021 lúc 8:16Sep 2, 2021 at 8:16

Hướng dẫn how to access stdclass object in php - cách truy cập đối tượng stdclass trong php

1

Những gì bạn đang tìm kiếm là đối tượng [‘Giá trị’] [0]: ‘Giá trị’ là keymap giống như ‘văn bản’ và [0] là chỉ mục bên trong mảng mà bạn muốn truy cập. Vì vậy, nếu bạn muốn đưa ID sâu trong tổ, bạn sẽ phải làm một cái gì đó như

stdClass Object
(
    [text] => Named after
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Stanford
                    [url] => SomeURL
                )

        )

)

1

hoặc

stdClass Object
(
    [text] => Named after
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Stanford
                    [url] => SomeURL
                )

        )

)

2

mà sẽ cung cấp cho bạn /m /0c02911. Nhưng tôi không biết bạn đang thực hiện vòng lặp của mình như thế nào, vì vậy bạn sẽ phải điều chỉnh nó theo nhu cầu của bạn và đặt các biến thích hợp nơi họ cần phải đi trong mã đó trong vòng lặp của bạn. Không chắc chắn chính xác ngôn ngữ bạn đang làm việc với.

Đã trả lời ngày 3 tháng 5 năm 2011 lúc 22:49May 3, 2011 at 22:49

Hướng dẫn how to access stdclass object in php - cách truy cập đối tượng stdclass trong php

Robxrobxrobx

3.0632 Huy hiệu vàng25 Huy hiệu bạc29 Huy hiệu đồng2 gold badges25 silver badges29 bronze badges

3

Làm thế nào để bạn có được đối tượng STDCLASS?

Chúng tôi tạo một mảng với người dùng tên. Sau đó chúng tôi nhập mảng vào một đối tượng. Kết quả của điều này, chúng tôi nhận được một đối tượng STDCLASS.

create an array with the name user .

Then we type-cast the array to an object

. As a result of this, we get an stdClass object.

Làm thế nào để bạn truy cập các thuộc tính của một đối tượng trong PHP?

Cách tiếp cận thực tế nhất chỉ đơn giản là chọn đối tượng mà bạn quan tâm trở lại vào một mảng, điều này sẽ cho phép bạn truy cập các thuộc tính: $ a = mảng (‘123’ => ‘123’, ‘123foo’ => ‘123foo’ ); $ o = (đối tượng) $ a; $ a = (mảng) $ o; echo $ o-> {‘123’}; // lỗi!

cast the object you are interested in back into an array

, which will allow you to access the properties: $a = array(‘123’ => ‘123’, ‘123foo’ => ‘123foo’); $o = (object)$a; $a = (array)$o; echo $o->{‘123’}; // error!

Đối tượng STDCLASS trong PHP là gì?

STDCLASS là lớp trống trong PHP được sử dụng để đúc các loại khác để đối tượng.Nó tương tự như đối tượng Java hoặc Python.STDClass không phải là lớp cơ sở của các đối tượng.Nếu một đối tượng được chuyển đổi thành đối tượng, nó không được sửa đổi.

the empty class in PHP which is used to cast other types to object

. It is similar to Java or Python object. The stdClass is not the base class of the objects. If an object is converted to object, it is not modified.

Làm thế nào để bạn gọi một mảng các đối tượng trong PHP?

Nếu nó được gọi là một mảng hoặc đối tượng phụ thuộc vào phần ngoài cùng của biến của bạn.Vì vậy, [std class mới] là một mảng ngay cả khi nó có (lồng nhau) các đối tượng bên trong nó và $ object-> property = mảng ();là một đối tượng ngay cả khi nó có mảng (lồng nhau) bên trong.Và nếu bạn không chắc chắn nếu bạn có một đối tượng hoặc mảng, chỉ cần sử dụng getType ().

$object->property = array();

is an object even if it has (nested) arrays inside. And if you are not sure if you have an object or array, just use gettype() .