2011-10-31 36 views
18

Sử dụng PHP, tôi phải phân tích một chuỗi đến mã của tôi trong một định dạng như thế này:Làm cách nào để lấy giá trị từ đối tượng (stdClass)?

object(stdClass)(4) { ["Title"]=> string(5) "Fruit" ["Color"]=> string(6) "yellow" ["Name"]=> string(6) "banana" ["id"]=> int(3) } 

tôi chắc chắn rằng có một giải pháp đơn giản, nhưng tôi dường như không thể tìm thấy nó ... làm thế nào để lấy Màu và Tên?

Cảm ơn rất nhiều.

+1

Các bạn đã thử $ obj-> Title $ obj-> Màu –

+0

Nó sẽ sâu hơn một chút nếu bạn đăng mã snip mà bạn đang sử dụng để tạo t mũ đầu ra. – 0xd

+0

Đợi đã, cái gì? Bạn phải "* phân tích cú pháp *" một chuỗi? Hay đây là một biến đối tượng thực tế? – mario

Trả lời

39

Bạn có thể làm: $obj->Title etcetera.

Hoặc bạn có thể biến nó thành một mảng:

$array = get_object_vars($obj); 
+0

Cảm ơn! $ obj-> Tiêu đề cho tôi. – dwarbi

+0

@dwarbi không có vấn đề^_^ – Neal

+0

Đẹp ... làm việc cho tôi cũng – deemi

10

Bạn tạo các đối tượng stdClass và phương pháp truy cập từ họ như vậy:

$obj = new StdClass; 

$obj->foo = "bar"; 
echo $obj->foo; 

Tôi khuyên bạn nên subclassing stdClass hoặc tạo lớp generic riêng của bạn để bạn có thể cung cấp các phương pháp của riêng bạn.

Quay một đối tượng stdClass vào một mảng:

Bạn có thể làm điều này bằng cách sử dụng đoạn mã sau:

$array = get_object_vars($obj); 

Hãy xem tại địa chỉ: http://php.net/manual/en/language.oop5.magic.php http://krisjordan.com/dynamic-properties-in-php-with-stdclass

+0

Cảm ơn sự giúp đỡ của bạn! Tôi chỉ cần $ obj-> Tiêu đề, nhưng tốt để biết các thông tin khác cho tương lai. – dwarbi

Các vấn đề liên quan