将动态参数传递给PHP中的函数(NOT参数)

时间:2014-12-15 11:12:42

标签: php laravel laravel-4

以防你想知道背景:

我有一个单一的联系人'对于许多类型的联系人,数据库表(mysql),我想要实现的是根据联系人类型将属性传递给查询。 (注意:此代码包含一些Laravel Eloquent语法)

$attributes=ContactAttributes::where('type',$contact->type_id)->first()->attributes;
//array of attribute names

call_user_func_array($contact->lists(),$attributes);
//try to call lists with attribute names which will be translated to a SQL query SELECT ... FROM 'contacts'

但似乎call_user_func_array实际上是调用lists()函数而没有任何返回错误的参数。我想要做的就是实际调用列表函数,将属性作为参数,而不是像lists($attributes[0],$attributes[1],$attributes[2],...)这样的参数。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果要使用对象调用方法,则应同时指定对象和方法:

call_user_func_array( array( $contact, 'lists' ), $attributes);

PHP docs

中有更多示例