Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将对象转换为一组变量_Php_Variables - Fatal编程技术网

Php 将对象转换为一组变量

Php 将对象转换为一组变量,php,variables,Php,Variables,您将如何进行转换: $Object->one; $Object->two; 致: 将其强制转换为数组,然后extract()it 记住alcuadrado关于封装的评论;强调这一点的是,extract()将只对公共实例变量起作用(我更新了示例代码来说明这一点) 输出: Notice: Undefined variable: third in... int(1) int(2) NULL 将其强制转换为数组,然后extract()it 记住alcuadrado关于封装的评论;强调这一

您将如何进行转换:

$Object->one;
$Object->two;
致:


将其强制转换为数组,然后
extract()
it

记住alcuadrado关于封装的评论;强调这一点的是,
extract()
将只对公共实例变量起作用(我更新了示例代码来说明这一点)

输出:

Notice: Undefined variable: third in...
int(1)
int(2)
NULL

将其强制转换为数组,然后
extract()
it

记住alcuadrado关于封装的评论;强调这一点的是,
extract()
将只对公共实例变量起作用(我更新了示例代码来说明这一点)

输出:

Notice: Undefined variable: third in...
int(1)
int(2)
NULL

如果在对象上使用foreach循环,它将迭代可见属性,而不公开私有成员

foreach ($object as $key => $value){
  $$key = $value;
}

如果在对象上使用foreach循环,它将迭代可见属性,而不公开私有成员

foreach ($object as $key => $value){
  $$key = $value;
}
尝试:
extract(获取对象变量($object))

这只会得到公共变量。如果您想要private,那么您需要从对象本身内部调用它。

尝试:
extract(get_object\u vars($object))


这只会得到公共变量。如果您想要private,那么您需要从对象本身内部调用它。

请考虑您可能违反了对象的封装(不应暴露其成员)@alcuadrado:这是一个很好的注意事项。我会记住这一点。如果它们是公开的,那么它们已经被曝光了。从而导致你做这种奇怪的事情。:)考虑到你可能违反了对象的封装(不应该暴露它的成员)@ AlCuADADO:这是一个很好的注释。我会记住这一点。如果它们是公开的,那么它们已经被曝光了。从而导致你做这种奇怪的事情。:)