簡體   English   中英

從php對象獲取屬性

[英]Get property from php object

我做了php對象$grid的var轉儲,並且需要訪問此屬性:

["wpupg_post_types"]=> array(1) { [0]=> string(21) "a:1:{i:0;s:4:"post";}" } 

我需要把“發布”一詞排除在外。 我試着做

$posttype = $grid->wpupg_post_types;
if (in_array("post", $posttype)) {
 echo "post";
}

但這沒有用。 如果我嘗試var_dump($grid->wpupg_post_types); 它返回NULL。

你知道我該怎么做嗎?

變量是序列化的字符串數組:

a:1:{i:0;s:4:"post";}

拉出第一項,然后將其傳遞給unserialize()以將其變成數組:

$result = unserialize(array_shift($grid->wpupg_post_types));

這樣產生:

Array
(
    [0] => post
)

注意:這假定該屬性是公共的。

$posttype = $grid->wpupg_post_types; 包含一個元素的數組和帶有post的序列化數組。

php > $array = [serialize(['post'])];
php > var_dump($array);
php shell code:1:
array(1) {
  [0] =>
  string(21) "a:1:{i:0;s:4:"post";}"
}

要檢查帖子是否在數組內,您需要執行另一種檢查

php > var_dump(in_array('post', unserialize($array[0])));
php shell code:1:
bool(true)

您的具體情況應該是

if(in_array('post', unserialize($grid->wpupg_post_types[0]))) {
    echo 'post';
}

編輯:這是我的交互式外殼

$ php -a
Interactive shell

php > $array = [serialize(['post'])];
php > var_dump($array);
php shell code:1:
array(1) {
  [0] =>
  string(21) "a:1:{i:0;s:4:"post";}"
}
php > var_dump(in_array('post', unserialize($array[0])));
php shell code:1:
bool(true)
php >

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM