您能解释下一个有趣的行为吗?
class test {
//Class *test* has two properties, public and private.
public $xpublic = 'x1';
private $xprivate = 'x2';
}
$testObj = new test();
让我们转换$testObj
为数组。
settype($testObj, 'array');
var_dump($testObj);
结果:
array(2){
[“ xpublic”] =>字符串(3)“ x1”
[“ testxprivate”] =>字符串(4)“ x2”
}
好,xprivate
财产变成testxprivate
让我们将此数组转换为对象。
$newObj = (object)$testObj;
var_dump($newObj);
结果:
object(stdClass)#1(2){
[“ xpublic”] =>字符串(3)“ xxx”
[“ xprivate”:“ test”:private] => string(4)“ xxx3”
}
$newObj
是一个stdClass
对象。
问题是:
为什么要testxprivate
成为新对象的私有财产xprivate
(不是testxprivate
)?PHP如何知道该$testObj
数组是一个对象?
如果我定义相等的数组:
$testArray = array('xpublic'=>'x1', 'testxprivate'=>'x2');
然后将其转换为对象:
var_dump((object)$testArray);
我将获得具有两个 公共 属性的对象,xpublic
并且testxprivate
与预期的一样:
object(stdClass)#2(2){
[“ xpublic”] =>字符串(2)“ x1”
[“ testxprivate”] =>字符串(2)“ x2”
}
数组键包含一个标记,该标记应为类测试的私有属性。
将脚本输出与以下内容进行比较:
$array = array(
"xpublic" => "x1",
# this will become a private member:
"\x00test\x00xprivate" => "x2",
# this will become a protected member:
"\x00*\x00xprotected" => "x3"
);
var_dump($array);
$obj = (object) $array;
var_dump($obj);
序列化时,使用相同的字符串描述私有成员。
输出:
数组(3){
[“ xpublic”] =>
字符串(2)“ x1”
[“ testxprivate”] =>
字符串(2)“ x2”
[“ * xprotected”] =>
字符串(2)“ x3”
}
object(stdClass)#1(3){
[“ xpublic”] =>
字符串(2)“ x1”
[“ xprivate”:“ test”:private] =>
字符串(2)“ x2”
[“ xprotected”:protected] =>
字符串(2)“ x3”
}
在的输出中var_dump()
,空字节不可见。
(更新:添加了受保护的类成员)
问题内容: 我需要将PHP数组转换为json,但我没有得到我期望的结果。我希望它是一个可以轻松使用数字索引导航的对象。这是一个示例代码: 这就是我得到的 但是我想得到一个对象而不是数组: 谢谢 :) 问题答案: 你想。 顾名思义,该标志将json输出强制为一个对象,即使通常将其表示为数组也是如此。 您还可以删除一些更简洁的代码:
问题内容: Swift在Underscore.js中是否有类似_.findWhere的内容? 我有一个类型为struct的数组,想检查array是否包含属性等于的struct对象。 尝试使用,但它们仅适用于基本类型,例如或。引发有关不符合协议之类的错误。 问题答案: FWIW,如果您不想使用自定义功能或扩展名,则可以: 首先生成数组,然后从中生成数组。 如果阵列很大,则可能需要执行以下操作: 或许
问题内容: 在一个我目前正在从事的项目中,我遇到了一个角度异常: 在寻找解决方案的搜索中,我直接在浏览器中输入了Web服务的URL,但令人惊讶的是,我没有收到预期的数组。 Web服务类: 当我输入网址时,我希望看到带有JSON对象的JSON数组: 但是,相反,我收到的JSON对象的属性与我期望的JSON对象相同,没有任何数组: 所以我想知道为什么没有数组,当我添加另一个Clazz对象时会发生什么。
问题内容: 如何将XML文档转换为Java对象(或数组)?我这样阅读XML: 现在,我希望将XML作为对象(或数组),但是我应该怎么做呢?是否有任何方法,教程或类可以做到这一点? 问题答案: 您将需要JAXB解组。
问题内容: 我需要解析一个看起来像这样的json文件: 我想将这些X坐标和Y坐标放入JavaObject Click中,该类如下所示: 我看过gson是因为他们说这很容易,但是我不知道如何从文件中做到这一点。 问题答案: 假设您的json字符串数据存储在名为的变量中:
本文向大家介绍Java中合并数组到新对象数组,包括了Java中合并数组到新对象数组的使用技巧和注意事项,需要的朋友参考一下 以下是在Java中,将数组合并为新对象数组的Java程序- 示例 输出结果 名为Demo的类包含“ concat_fun”,该类接受两个对象并返回连接的对象作为输出。在主字符串中,创建两个整数对象,第三个对象用于存储合并后的对象。相关消息显示在控制台上。