PHP学习与整理(三):可变参数

最近在laravel和thinkphp中见到很多这种形式的方法(平常开发只会使用简单的语法和内置方法,真是孤陋寡闻了)。

func(...$args)

看一下例子

<?php
function func(...$args){
	var_dump($args);
}

func('apple', 'boy', 'cat', 'dog');
func(['apple', 'boy', 'cat', 'dog']);

这两种传参方式输出结果都是一样的:

E:\projects\test\arg.php:3:
array (size=4)
  0 => string 'apple' (length=5)
  1 => string 'boy' (length=3)
  2 => string 'cat' (length=3)
  3 => string 'dog' (length=3)
E:\projects\test\arg.php:3:
array (size=1)
  0 => 
    array (size=4)
      0 => string 'apple' (length=5)
      1 => string 'boy' (length=3)
      2 => string 'cat' (length=3)
      3 => string 'dog' (length=3)

另外,关联数组传参是不被允许的

func(['a'=>'apple', 'b'=>'boy', 'c'=>cat', 'd'=>'dog']);

报错:
( ! ) Parse error: syntax error, unexpected ‘’, ‘’ (T_CONSTANT_ENCAPSED_STRING), expecting ‘]’ in E:\projects\test\arg.php on line 9

没有账号? 忘记密码?

社交账号快速登录