繁体   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