当前位置:首页 » 编程语言 » php数组转对象

php数组转对象

发布时间: 2023-05-10 22:39:35

A. php类被实例化以后生成的对象 如何变为 php数组呢

使用对象的引用对象的属性的方式引用呗。
$obj->pro;//$obj为对象名,pro为其属性。
echo $page->prev;

B. PHP数组里面存放对象

楼上解释正确,不过我补充一下。
既然初始化是在类声明之后,那么可以通过手动串行化和反串行化来达到目的。
保存的时候使用serialize来保存,提取恢复的时候使用unserialize来恢复。
当然,这个还有一个要注意的地方,需要保存的对象最好是只包含数据,意思是,不要有数据库连接资源、文件资源之类的,如果包含这些,串行和反串行的结果都是一个int 0,反串行的时候可能不能正常工作。
至于对象串行反串行的一些可定制的功能,可以参考帮助文档的这个部分:
http://dk2.php.net/manual/zh/language.oop.magic-functions.php
通过定义魔术函数__sleep __wakeup来实现。

C. php生成数组转成json后,在转化为对象

你可以参考一下我的建议,1.普通:若php关联数组不含有中文,直接json_encode转换。转换之后用json_deconde($stuJson)转为php对象。
<?php
$stu = array("name"=>"li","age"=>"35");
$stuJson = json_encode($stu);
还有什么疑问的话,可以多去后盾们看一下相关的视频,这样你更清楚

D. PHP中怎么把对象转换为关联数组

可以用函郑族数get_object_vars将对象转换为属性组成喊侍弊的关谈告联数组,其语法如下:

$arr1=get_object_vars($obj);//$obj为需要转换的对象,下同

也可以用强制类型转换,如:

$arr1=(array)$obj;

或者这样:

$arr1=settype($obj,"array");

E. php中数组能储存对象吗

可以的 举个简单的例子给你
<?php

class foo
{

function do_foo()
{
echo "Doing foo.";
}
}

$bar = new foo;

$arry1=array(1,$bar);//这里将实例化的对象存入数组

var_mp($arry1);//这里打印数组结构 你会发现下标1的位置存储了一个object对象
$arry1[1]->do_foo();;//以数组形式 调用do_foo();
$bar->do_foo();//正常的调用do_foo()
//两种方式输出是一样的 充分说明 数组是可以存储对象的 希望对你的学习有帮助
?>

//下面是输出 我自动换行分割了下 其实是一行
array(2) { [0]=> int(1) [1]=> object(foo)#1 (0) { } }
Doing foo.
Doing foo.

F. php怎么将数组数组转化为json格式的数据

一、json_encode()

[php]view plain

  • <?php

  • $arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

  • echojson_encode($arr);

  • ?>

  • 输出

    [php]view plain

  • {"a":1,"b":2,"c":3,"d":4,"e":5}

  • 再看一笑祥个对象转换的例子:

    [php]view plain

  • $obj->body='anotherpost';

  • $obj->id=21;

  • $obj->approved=true;

  • $obj->favorite_count=1;

  • $obj->status=NULL;

  • echojson_encode($obj);

  • 输出

    [php]view plain

  • {

  • "body":"anotherpost",

  • "id":21,

  • "approved":true,

  • "favorite_count":1,

  • "status":null

  • }


  • 由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。
  • 二、索引数组和关联数组

    PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。

    由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

G. php创建一个类,在类中声明一个数组存放另一个对象,为什么无法调用数组中对象的方法

//新建一个类User用来存放这,三个数据
//结果放到一个User数组中,你看这可以吗?
//还是说要放到一个list中?

public class ObjectTest {

public static void main(String[] args) {
String[] id = new String[8];
String[] type = new String[8];
String[] username = new String[8];

User[] users = getUsers(type, id, username);
}

private static User[] getUsers(String[] type, String[] id, String[] username) {
User[] users = new User[type.length];
for (int i = 0; i < type.length; i++) {
users[i] = new User(id[i], type[i], username[i]);
}
return users;
}
}

class User {

public User(String id, String tpye, String username) {
this.tpye = tpye;
this.id = id;
this.username = username;
}

private String tpye;
private String id;
private String username;

public String getTpye() {
return this.tpye;
}

public String getId() {
return this.id;
}

public String getUsername() {
return this.username;
}

public void setTpye(String tpye) {
this.tpye = tpye;
}

public void setId(String id) {
this.id = id;
}

public void setUsername(String username) {
this.username = username;
}

}

H. PHP数组转为对象怎么处理

按照你的要求编写的php程序如下

<?php

$s='{"data":["阿里:65","支付宝:2","微信:1"]}';

$obj=json_decode($s,true);

$arr=$obj['data'];

$c=array();

for($i=0;$i<count($arr);$i++){

$b=array();

$a=explode(':',$arr[$i]);

$b[$a[0]]=$a[1];

$c[$i]=$b;

}

$result['data']=$c;

echo json_encode($result,JSON_UNESCAPED_UNICODE);

?>

I. PHP数组中可否存放对象如果可以,那么在smarty的模板中应当如何获取对象的属性值

PHP的数组是支持保存对象的实例的,然后你的错误提示中也能看出是用了数组的方式来访问了一个对象。
建议你不要用对象的形式,而全部都用数组。可以用json函数来转换
$user_array=json_decode(json_encode($user_array),true);

这样一来$user_array里面就全部都是数组,其中原先对象的部分被一个包含了其所有成员属性的数组替代。

J. php中显示数组与对象的实现代码

1、
使用
print_r
(
$array/$var
)
print
是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量。
print_r
($_REQUEST)
;
print_r
($_GET)
;
/*
打印使用GET方法传递的表单内容*/
print_r($_POST)
;
/*
打印使用表单POST方法传递过的数组内容*/
2、
使用
var_mp
($object/$array/$var)
var
代表变量(Variable),变量包括对象、数组以及标量变量,mp有倒出之意,加在一块,就是将变量或对象的内容全部输出出来。
var_mp($DB)
;
/*打印$DB数据库连接对象的内容*/
var_mp($fileHandle)
;
/*打印文件句柄对象的内容*/
var_mp($Smarty)
;
/*打印Smarty模板对象*/
3、
使用
var_export($object/$array/$var)
输出或返回一个变量的字符表示。此函数返回关于传递给函数的变量的结构信息,它和print_r()类似,不同的是其返回的表示是合法的PHP代码。可以通过将函数的第二个参数设置为TRUE,从而返回变量的表示。
例如:
复制代码
代码如下:
<?php
$a
=
array
(
1,2,
array("a","b","c"))
;
var_export
($a)
;
echo
"<br>"
;
$v
=
var_export
(
$a
,
TRUE)
;
echo
$v
;
?>
上例中,$v
=
var_export
(
$a
,
TRUE)
表示返回的是PHP的源代码,可以直接用PHP脚本的数组文件中。
相关说明:
以上三个函数都可以打印对象的值、系统函数值以及数组的内容;

echo
、print、printf可以打印变量内容,但不能显示数组及系统超级变量数组;

print_r

var_mp不仅可以打印数组、标量变量,还可以打印对象的内容;

var_mp语句不仅能打印变量、数组内容,还可以显示布尔变量和资源(Resource)的内容;

var_export
函数返回关于传递给该函数的变量的结构信息,和
var_mp()函数类似,不同的是其返回的内容是合法的PHP代码。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:713
制作脚本网站 发布:2025-10-20 08:17:34 浏览:977
python中的init方法 发布:2025-10-20 08:17:33 浏览:686
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:838
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:745
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1085
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:314
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:194
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:882
python股票数据获取 发布:2025-10-20 07:39:44 浏览:840