在 php 中解压参数数组
Python 提供了“*”运算符来解压元组列表并将它们作为参数提供给函数,如下所示:
args = [3, 6]
range(*args) # call with arguments unpacked from a list
这相当于:
range(3, 6)
有谁知道是否有办法在 PHP 中实现此目的? 谷歌搜索“PHP Unpack”的变体并没有立即找到任何东西..也许它在 PHP 中被称为不同的东西?
Python provides the "*" operator for unpacking a list of tuples and giving them to a function as arguments, like so:
args = [3, 6]
range(*args) # call with arguments unpacked from a list
This is equivalent to:
range(3, 6)
Does anyone know if there is a way to achieve this in PHP? Some googling for variations of "PHP Unpack" hasn't immediately turned up anything.. perhaps it's called something different in PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在 php5.6 中 添加了通过
...
(splat 运算符)解包参数。 使用它,您可以摆脱call_user_func_array()
这个更简单的替代方案。 例如有一个函数:使用你的数组
$list = [4, 6];
(在php5.5之后你可以用这种方式声明数组)。您可以使用
...
调用您的函数:In
php5.6
Argument unpacking via...
(splat operator) has been added. Using it, you can get rid ofcall_user_func_array()
for this simpler alternative. For example having a function:With your array
$list = [4, 6];
(after php5.5 you can declare arrays in this way).You can call your function with
...
:您可以使用
call_user_func_array()
来实现:call_user_func_array(" range", $args);
使用您的示例。You can use
call_user_func_array()
to achieve that:call_user_func_array("range", $args);
to use your example.在某些情况下,您可能会考虑使用
unpacking
,这在 php 中是可能的,与 python 类似:这至少是我得出这个答案的方式。
Google 搜索:
PHP 参数解包
In certain scenarios, you might consider using
unpacking
, which is possible in php, is a similar way to python:This is how I have arrived to this answer at least.
Google search:
PHP argument unpacking
您应该使用 call_user_func_array
http://www.php.net/call_user_func_array
或使用反射 api < a href="http://www.php.net/oop5.reflection" rel="nofollow noreferrer">http://www.php.net/oop5.reflection
You should use the call_user_func_array
http://www.php.net/call_user_func_array
or use the reflection api http://www.php.net/oop5.reflection
另一个带有 ... - 运算符的示例。
RFC:https://wiki.php.net/rfc/variadics
Another example with ... - operator.
RFC: https://wiki.php.net/rfc/variadics