我有像joomla一样生成的stdClass对象
$db->setQuery($sql);
$schoollist = $db->loadObjectList();
Run Code Online (Sandbox Code Playgroud)
$ schoollist变量包含以下stdClass对象
stdClass Object ( [id] => 1 [col1] => blabla [col2] => 5 [col3] => 208 )
stdClass Object ( [id] => 2 [col1] => test1 [col2] => 1 [col3] => 52 )
Run Code Online (Sandbox Code Playgroud)
我需要在查询后添加另一个"列"作为[col4] => dsdads,所以结果将是这样的
stdClass Object ( [id] => 1 [col1] => blabla [col2] => 5 [col3] => 208 [col4] => 208)
stdClass Object ( [id] => 2 [col1] => test1 [col2] => 1 [col3] => 52 [col4] => 208)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
有人会碰巧知道是否可以在用户定义的stdClass对象上设置命名空间.
我想要做的是以getter方法的形式返回类的所有私有属性作为对象.
我找到了一个可能的解决方案,我可以做这样的事情;
public function getDataItems() {
$dataObj = new stdClass;
$dataObj->image_id = $this->image_id;
$dataObj->image_name = $this->image_name;
$dataObj->name = $this->name;
$dataObj->email = $this->email;
$dataObj->company = $this->company;
return $dataObj;
}
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是这个函数所在的类是使用命名空间,因此我需要以某种方式为这个$ dataObj对象分配相同的命名空间.
有谁知道我怎么做这个或者甚至可能吗?
我希望能够做到以下几点:
$obj = new stdClass;
$obj->status = "success";
$obj2 = new stdClass;
$obj2->message = "OK";
Run Code Online (Sandbox Code Playgroud)
如何扩展$ obj以使其包含$ obj2的属性,例如:
$obj->status //"success"
$obj->message // "OK"
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用数组,将所有属性添加到数组然后将其转换回对象,但有更优雅的方式,如下所示:
extend($ obj,$ obj2); //将$ obj2中的所有属性添加到$ obj
谢谢!
我有一个stdClass对象数组,我想使用所有这些stdClass对象的一个特定字段构建一个逗号分隔列表.我的数组看起来像这样:
$obj1 = stdClass Object ( [foo] => 4 [bar] => 8 [foo-bar] => 15 );
$obj1 = stdClass Object ( [foo] => 16 [bar] => 23 [foo-bar] => 42 );
$obj1 = stdClass Object ( [foo] => 76 [bar] => 79 [foo-bar] => 83 );
$a = array(1=>$obj1 , 2=>$obj2 , 3=>$obj3);
Run Code Online (Sandbox Code Playgroud)
我想破坏该数组中foo的所有stdClass对象以创建逗号分隔列表.所以期望的结果是:
4,16,76
Run Code Online (Sandbox Code Playgroud)
有没有办法用implode(或其他一些神秘函数)做到这一点,而不必通过循环放置这个对象数组?
我使用以下代码从使用Soap的网站获取数据.
$client = new SoapClient('http://some.url.here');
class SMSParam {
public $CellNumber;
public $AccountKey;
public $MessageCount;
public $MessageBody;
public $Reference;
}
$parameters = new SMSParam;
$parameters -> AccountKey = "$sms_key";
$parameters -> MessageCount = "25";
$Result = $client->GetIncomingMessages($parameters);
echo "<pre>";
print_r($Result);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)
以下是输出示例:
stdClass Object
(
[GetIncomingMessagesResult] => stdClass Object
(
[SMSIncomingMessage] => Array
(
[0] => stdClass Object
(
[OutgoingMessageID] => data
[Reference] => data
[MessageNumber] => data
[PhoneNumber] => data
[Message] => data
[ReceivedDate] => data
)
[1] => …Run Code Online (Sandbox Code Playgroud) 是否可以以这种方式添加方法/功能,例如
$arr = array(
"nid"=> 20,
"title" => "Something",
"value" => "Something else",
"my_method" => function($arg){....}
);
Run Code Online (Sandbox Code Playgroud)
或者像这样
$node = (object) $arr;
$node->my_method=function($arg){...};
Run Code Online (Sandbox Code Playgroud)
如果有可能那么我该如何使用该功能/方法?
我有一个stdclass对象,如下所示:
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
)
)
)
Run Code Online (Sandbox Code Playgroud)
我迭代了多个这样的对象,其中一些有
stdClass Object
(
[text] => Named after
[values] => Array
(
[0] => stdClass Object
(
[id] => /m/0c02911
[text] => Stanford
[url] => SomeURL
)
)
)
Run Code Online (Sandbox Code Playgroud)
我想知道如果它出现在"父"作为其值的"文本"之后我将如何访问"值"对象?
我正在研究这个PHP代码协作,似乎有些人会像这样访问PHP StdClass字段
$body->head
Run Code Online (Sandbox Code Playgroud)
和其他人一样
$body->{'head'}
Run Code Online (Sandbox Code Playgroud)
据我所知,这些是等价的.是吗?使用哪个是否重要?你更喜欢哪种方式?有什么怪癖要注意吗?
我有一个像这样的对象:
stdClass Object
(
[_count] => 10
[_start] => 0
[_total] => 37
[values] => Array
(
[0] => stdClass Object
(
[_key] => 50180
[group] => stdClass Object
(
[id] => 50180
[name] => CriticalChain
)
)
[1] => stdClass Object
(
[_key] => 2357895
[group] => stdClass Object
(
[id] => 2357895
[name] => Data Modeling
)
)
[2] => stdClass Object
(
[_key] => 1992105
[group] => stdClass Object
(
[id] => 1992105
[name] => SQL Server …Run Code Online (Sandbox Code Playgroud) 所以我将这个数组保存在变量标题中$arr.我想抓住或回应[slug]的价值
Array ( [0] => stdClass Object ( [term_id] => 11
[name] => Community Service
[slug] => community-service
[term_group] => 0
[term_taxonomy_id] => 11
[taxonomy] => category
Run Code Online (Sandbox Code Playgroud)
所以我想要这样的东西
echo $ arr [slug]
然后显示"社区服务".我确信这很容易,但我无法弄清楚如何从数组stdClass中获取值并在页面上回显它.谢谢.