⑴ php的几种函数参数类型及一些特殊函数
给你整理如下:
默认参数:在函数声明时给参数赋值,而且此默认参数只能在最后,调用时可不传递任何参数(若只有默认参数的情况下)
可变参数:一个函数可能需要可个可变数目的参数。在php中,提供了三个函数用于检索函数中所传递的参数。func_get_args()返回一个提供提供给函数的所有参数的数组;func_num_args()返回提供给函数的参数数目;func_get_arg()返回一个来自参数的特定参数。具体如下:
$array = func_get_args();
$count = func_num_args();
$value = func_get_arg();
遗漏参数:当调用函数时,可以传递任意个参数给函数。当函数必要的参数没有i被传递时,此参数值是空,并且PHP会为每个遗漏的参数发出警告
可变函数:使用可变变量,可以基于变量的值调用函数
匿名函数:又叫闭包函数,允许临时建立一个没有指定名称的函数,最经常用作回调函数参数的值。需要注意的是,在匿名函数内的变量的用法不同于全局变量,在匿名函数内的变量是一个闭包变量,另外,被调用闭包的作用域不必是相同的。
⑵ 如何使PHP程序执行页面跳转时传递大量参数
有时候一个页面需要上一个页面的多个参数
通过页面定向header("Location: aaa.php?argument1=$argument1&argument2=$argument2&................);
以及超链接echo '<a href="aaa.php?argument='.$argument.'"></a>';的方式传递参数可能就不太方便了
以下提供一个可供参考的实现方法:
//a.php
<?php
//制作参数数组
$arr_arg=array($a,$b,$c,...........................);
//使用implode函数将数组桥接成一个字符串
$arg=implode('-',$arr_arg);
//定向到b.php
hearder('Location: b.php?arg='.$arg);
?>
//b.php
<?php
//接受从a.php传递过来的参数,并用explode函数进行拆解,至此便可以再次以数字索引数组的形式访问每个参数
$arg=explode('-',$_GET['arg']);
echo '<pre>';
print_r($arg);
echo '</pre>';
?>
⑶ php函数多个参数实现传参任意顺序
这个不行,因为本身就会有逻辑错误。比如:他怎么知道。test(100)是$i,而不是$obj呢。也可能是第五个参数呢。要么test方法判断,要么占位。这个没啥好办法
⑷ 请问PHP怎么传递任意多个参数~~
用session可以记录多个参数并传递,或者......我看你这段程序是把一个长字符串用“,”分割再传递每个参数?也可以直接把这个长字符串传递到需要的网页再分割啊。还有就是用隐藏域。方法很多,多想想就可以了
⑸ PHP中有关函数参数的传递
null传给了$category,因为这是第一个参数,相当于调用:
lists(null,
'`id`
DESC',
1,
true)
另外,需要注意的是,有默认值的参数都放在后面,否则就不能省略了,举个例子,如果这样定义:
lists($order
=
'`id`
DESC',
$category,
$status
=
1,
$field
=
true),则不管$order是不是默认,调用的时候都必须最少传入两个参数。因为$category没有默认值。
⑹ 请写一个php函数,接受任意数量的参数,该怎么解决
functionshow_params(){
//获取传递参数的个数
$count=func_num_args();
//遍历参数并逐一输出
for($i=0;$i<$count;$i++){
//获取参数
$param=func_get_arg($i);
echo$param.PHP_EOL;
}
}
⑺ php能把函数名作为参数传递吗
可以。方法主要介绍2种:
1.使用函数call_user_func()或者 call_user_func_array()
<?php
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}
// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));
// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
2.php本身是支持可变函数的,如同javascript一样:
例一:
function foo($function) {
$function(" World");
}
function bar($params) {
echo "Hello".$params;
}
$variable = 'bar';
foo($variable);
例二:
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
?>