Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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_Key Value Coding - Fatal编程技术网

目标PHP和键值编码

目标PHP和键值编码,php,key-value-coding,Php,Key Value Coding,在我的代码的某些部分中,我需要如下内容: $product_type = $product->type; $price_field = 'field_'.$product_type.'_price'; $price = $product->$$price_field; 换句话说,我需要一种KVC-意味着在运行时按字段名获取对象字段。 我只需要扩展一些现有的系统并保持字段命名约定,所以不要建议我更改字段名 我知道这种方法适用于阵列,您可以通过以下方式轻松实现: $price = $p

在我的代码的某些部分中,我需要如下内容:

$product_type = $product->type;
$price_field = 'field_'.$product_type.'_price';
$price = $product->$$price_field;
换句话说,我需要一种KVC-意味着在运行时按字段名获取对象字段。 我只需要扩展一些现有的系统并保持字段命名约定,所以不要建议我更改字段名

我知道这种方法适用于阵列,您可以通过以下方式轻松实现:

$price = $product[$price_field_key].
所以我可以动态地为数组生成密钥。 但如何对对象执行此操作? 请帮助我,因为谷歌给我的数组等河流的结果。。。 谢谢你们,对不起,伙计们。 这比我想象的要容易得多。 希望它能帮助别人。简言之:

$price_field = 'field_'.$product_type.'_price';
$price = $product->$price_field;
因此,您可以使用varialbe在Php中获取对象字段

我带着那些$$;-)去了很远的地方

关于

如何使用


实际上,它的工作原理如下

$product_type = $product->type;


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


$price = $product->$price_field;

仅供参考,使用$$解析变量的内容。e、 例如,
$a='b'$b=‘键’;echo$foo->$$a
与本例中的
$foo->key
相同。实际上,这更像是一个黑客;-)但我喜欢+1
$price = $product->{$price_field};
$product_type = $product->type;


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


$price = $product->$price_field;