目标PHP和键值编码

时间:2010-06-05 19:53:33

标签: php key-value-coding

在我的代码的某些部分,我需要这样的东西:

$product_type = $product->type;
$price_field = 'field_'.$product_type.'_price';
$price = $product->$$price_field;

换句话说,我需要一种KVC - 意味着通过运行时生成的字段名来获取对象字段。 我只需要扩展一些现有系统并保持字段命名约定,所以不要建议我改变字段名称。

我知道这样的东西适用于数组,当你可以通过以下方式轻松实现:

$price = $product[$price_field_key].

所以我可以动态生成数组的键。 但是如何为对象做到这一点? 请帮助我,因为谷歌给了我数组的结果河... 谢谢

4 个答案:

答案 0 :(得分:5)

$price = $product->{$price_field};

答案 1 :(得分:2)

抱歉,伙计们。 这比我想象的容易得多。 Hopefullty它会帮助某人。简单地说:

$price_field = 'field_'.$product_type.'_price';
$price = $product->$price_field;

所以你可以使用varialbe来获取Php中的对象字段。

我用那些$$去了很远; - )

此致

答案 2 :(得分:1)

如何使用get_object_vars

$price_field = 'field_'.$product_type.'_price';
$instvars = get_object_vars($product);
$price = $instvars[$price_field];

答案 3 :(得分:1)

Actualy它的工作原理如下。

$product_type = $product->type;


$price_field = "field_".$product_type"._price";


$price = $product->$price_field;