function mzrui_display($t_name,$id)
{}我想把第二个参数可选就是在调用的时候可以只给一个参数吗mzrui_display('1111') 第二个参数可以给,也可以不给???我现在测试的会报错 Warning: Missing argument 2 要怎么解决??
还是参数必须一一对应???
{}我想把第二个参数可选就是在调用的时候可以只给一个参数吗mzrui_display('1111') 第二个参数可以给,也可以不给???我现在测试的会报错 Warning: Missing argument 2 要怎么解决??
还是参数必须一一对应???
{}
你给它一个默认值就行了。随便设。
这种写法是不符合规范的,建议要给参数赋默认值,例如改为:
function mzrui_display($t_name,$id=-1)
{}或者干脆参数也不用了,直接使用func_get_args,改为:
function mzrui_display()
{
$args = func_get_args();
$args_num = func_num_args();
if($args_num == 0){
echo '请输入参数';
exit;
}
if($args_num == 1){
$t_name = $args[0];
}
if($args_num >= 2){
$t_name = $args[0];
$id = $args[1];
}
}
func_get_args
(PHP 4, PHP 5)func_get_args — Returns an array comprising a function's argument list说明
array func_get_args ( void )
Gets an array of the function's argument list. This function may be used in conjunction with func_get_arg() and func_num_args() to allow user-defined functions to accept variable-length argument lists. 返回值
Returns an array in which each element is a copy of the corresponding member of the current user-defined function's argument list. 更新日志版本 说明
5.3.0 This function can now be used in parameter lists.
5.3.0 If this function is called from the outermost scope of a file which has been included by calling include() or require() from within a function in the calling file, it now generates a warning and returns FALSE.
错误/异常
Generates a warning if called from outside of a user-defined function. 范例Example #1 func_get_args() example<?php
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}foo(1, 2, 3);
?>
以上例程会输出:Number of arguments: 3<br />
Second argument is: 2<br />
Argument 0 is: 1<br />
Argument 1 is: 2<br />
Argument 2 is: 3<br />
Example #2 func_get_args() example before and after PHP 5.3test.php
<?php
function foo() {
include './fga.inc';
}foo('First arg', 'Second arg');
?>fga.inc
<?php$args = func_get_args();
var_export($args);?>
Output previous to PHP 5.3: array (
0 => 'First arg',
1 => 'Second arg',
)
Output in PHP 5.3 and later: Warning: func_get_args(): Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false
Example #3 func_get_args() example of byref and byval arguments<?php
function byVal($arg) {
echo 'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'After change : ', var_export(func_get_args()), PHP_EOL;
}function byRef(&$arg) {
echo 'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'After change : ', var_export(func_get_args()), PHP_EOL;
}$arg = 'bar';
byVal($arg);
byRef($arg);
?>
以上例程会输出:
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'bar',
)
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)
(PHP 4, PHP 5)func_num_args — Returns the number of arguments passed to the function说明
int func_num_args ( void )
Gets the number of arguments passed to the function. This function may be used in conjunction with func_get_arg() and func_get_args() to allow user-defined functions to accept variable-length argument lists. 返回值
Returns the number of arguments passed into the current user-defined function. 更新日志版本 说明
5.3.0 This function can now be used in parameter lists.
5.3.0 If this function is called from the outermost scope of a file which has been included by calling include() or require() from within a function in the calling file, it now generates a warning and returns -1.
错误/异常
Generates a warning if called from outside of a user-defined function. 范例Example #1 func_num_args() example<?php
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs\n";
}foo(1, 2, 3);
?>
以上例程会输出:Number of arguments: 3
Example #2 func_num_args() example before and after PHP 5.3test.php
<?php
function foo() {
include './fna.php';
}foo('First arg', 'Second arg');
?>fna.php
<?php$num_args = func_num_args();
var_export($num_args);?>
Output previous to PHP 5.3: 2
Output in PHP 5.3 and later will be something similar to: Warning: func_num_args(): Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fna.php on line 3
-1
第二个参数给一个初始值就行了