在我的代码的某些部分,我需要这样的东西:
$product_type = $product->type;
$price_field = 'field_'.$product_type.'_price';
$price = $product->$$price_field;
换句话说,我需要一种KVC - 意味着通过运行时生成的字段名来获取对象字段。 我只需要扩展一些现有系统并保持字段命名约定,所以不要建议我改变字段名称。
我知道这样的东西适用于数组,当你可以通过以下方式轻松实现:
$price = $product[$price_field_key].
所以我可以动态生成数组的键。 但是如何为对象做到这一点? 请帮助我,因为谷歌给了我数组的结果河... 谢谢
答案 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;