Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/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中用自己的函数/方法模拟list()?_Php_List - Fatal编程技术网

如何在PHP中用自己的函数/方法模拟list()?

如何在PHP中用自己的函数/方法模拟list()?,php,list,Php,List,我们都知道这样的电话: list($a, $b) = explode(':', 'A:B'); 但是如何制作一个可以使用相同方法的自定义函数呢 $obj->mylist($a, $b) = explode(':', 'A:B'); mylist($a, $b) = explode(':', 'A:B'); 如果我使用上述代码行,我总是会得到:不能在[…]的写上下文中使用方法返回值 如何定义函数/类方法以接受该类型的赋值?如何使用explode返回的数组?通过func_获取参数 当然,还

我们都知道这样的电话:

list($a, $b) = explode(':', 'A:B');
但是如何制作一个可以使用相同方法的自定义函数呢

$obj->mylist($a, $b) = explode(':', 'A:B');
mylist($a, $b) = explode(':', 'A:B');
如果我使用上述代码行,我总是会得到:不能在[…]的写上下文中使用方法返回值 如何定义函数/类方法以接受该类型的赋值?如何使用explode返回的数组?通过func_获取参数

当然,还有其他方法可以指定explode的结果,但这不是本问题的主题。例如

$obj->mylist($a, $b, explode(':', 'A:B'));
mylist($a, $b, explode(':', 'A:B'));

这是不可能的,因为您无法编写一个可以用作左值的方法


列表不是一个函数,而是一种语言结构,这就是为什么它可以按其使用方式使用。

这是不可能的,因为您无法编写一个可以用作左值的方法

列表不是一个函数,而是一种语言结构,这就是为什么它可以按其使用方式使用。

你不能这样做。是一种语言结构,而不是函数,在PHP中,没有办法使函数具有这样的行为。这将导致语法错误

您希望mylist$a、$b=explode':'、'a:b'有什么意义;无论如何?如果它是列表而不是mylist,它将等同于:

$arr = explode(':', 'A:B');
$a = $arr[0];
$b = $arr[1];
unset($arr);
对于左边的函数,你怎么能重新定义它的含义呢?通过对象示例,您可以执行以下操作:

list($obj->a, $obj->b) = explode(':', 'A:B');
你到底想表现出什么样的行为?也许还有别的办法。

你不能那样做。是一种语言结构,而不是函数,在PHP中,没有办法使函数具有这样的行为。这将导致语法错误

您希望mylist$a、$b=explode':'、'a:b'有什么意义;无论如何?如果它是列表而不是mylist,它将等同于:

$arr = explode(':', 'A:B');
$a = $arr[0];
$b = $arr[1];
unset($arr);
对于左边的函数,你怎么能重新定义它的含义呢?通过对象示例,您可以执行以下操作:

list($obj->a, $obj->b) = explode(':', 'A:B');
你到底想表现出什么样的行为?也许还有另一种方法