本文目录一览:
PHP的stdClass类详解及几种数组对象转换方法
一、stdClass数组转对象
$arr= array();
$arr[‘a’] = 1;
$arr[‘b’] = 2;
$arr[‘c’] = 3;
$object= newstdClass;
foreach($arras$key= $value) {
$object-$key= $value;
}
var_dump($object);
结果输出如下:
object(stdClass)#1 (3) {
[“a”]=
int(1)
[“b”]=
int(2)
[“c”]=
int(3)
}
二、对象转数组
functionobject_to_array($obj)
{
$_arr= is_object($obj) ? get_object_vars($obj) : $obj;
foreach($_arras$key= $val)
{
$val= (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
$arr[$key] = $val;
}
return$arr;
}
三、ArrayObject方法数组转对象
$arr= array(‘key1’=’test1’, ‘key2’= ‘test2’);
var_dump(newArrayObject($arr));
结果输出如下:
object(ArrayObject)#1 (1) {
[“storage”:”ArrayObject”:private]=
array(2) {
[“key1”]=
string(5) “test1”
[“key2”]=
string(5) “test2”
}
}
用PHP的全局变量的一个BUG~~
你想把stdClass
放在全局变量里,在程序的任何地方都能使用它?
你可以把类放在static变量内。直接调用。
class
Base
{
public
static
$std;
public
function
__construct()
{
require_once
‘stdClass.php’;
self::$std=
new
stdClass();
}
}
Base::$std;就是stdClass类的实例了。
php中 stdclass object是什么
stdClass在PHP5才开始被流行。而PHP stdClass也是zend的一个保留类。似乎没有其他作用。也几乎没有任何说明。
或者,我们可以这么理解:PHP stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法。
凡时用new stdClass()的变量,都不可能会出现$a-test()这种方式的使用。
说简单的一些,stdClass()就是一个程序员实现提前声明的类,也就是说我们可以随时让一个变量成为一个类对象的实例而不需要先声明类才能创建类对象的实例。
php 一段代码取值问题?
这是json格式的数据,需要先解码才能使用,以下输出结果是:黑色 白色 蓝色
$spec=json_decode($spec); //json格式数据解码
foreach($spec as $key=$val) {
$val=(array)$val; //stdClass Object转array
if($val[‘title’]==”颜色”){
foreach($val[‘value’] as $index=$color) {
echo $color.” “; //输出颜色
}
}
}
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/285414.html