func_num_args() 这个函数返回的是当前函数的参数数量 返回的是数字
func_get_arg()函数返回的是指定位置的参数的值
输出:
Number of arguments: 3
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3
Array ( [b] => green [c] => blue ) Array ( [0] => green [1] => blue )
Array ( [b] => green [c] => blue ) Array ( [0] => green [1] => blue )
func_get_arg()函数返回的是指定位置的参数的值
func_get_args()这个函数返回的是包含当前函数所有参数的一个数组
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
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3
function pdo_query($sql){
$num_args = func_num_args();
echo $num_args." gfs "."<br>";
$args = func_get_args(); //获得传入的所有参数的数组
$args=array_slice($args,1,--$num_args);
global $DB_HOST,$DB_NAME,$DB_USER,$DB_PASS,$dbh;
if(!$dbh){
if($OJ_SAE) {
$OJ_DATA="saestor://data/";
// for sae.sina.com.cn
$DB_NAME=SAE_MYSQL_DB;
$dbh=new PDO("mysql:host=".SAE_MYSQL_HOST_M.';dbname='.SAE_MYSQL_DB, SAE_MYSQL_USER, SAE_MYSQL_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));
}else{
echo $DB_HOST." ".$DB_NAME." ".$DB_USER." ".$DB_PASS." ".$dbh."<br>";
$dbh=new PDO("mysql:host=".$DB_HOST.';dbname='.$DB_NAME, $DB_USER, $DB_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));
}
}
....
<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow","e"=>"brown");
print_r(array_slice($a,1,2));
$a=array("0"=>"red","1"=>"green","2"=>"blue","3"=>"yellow","4"=>"brown");
print_r(array_slice($a,1,2));
?>
Array ( [b] => green [c] => blue ) Array ( [0] => green [1] => blue )
定义和用法
array_slice() 函数在数组中根据条件取出一段值,并返回。
注释:如果数组有字符串键,所返回的数组将保留键名。
<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,2));
?>
Array ( [b] => green [c] => blue ) Array ( [0] => green [1] => blue )