如何调用在php中使用默认参数的函数?

时间:2014-05-11 18:35:36

标签: javascript php ajax function

假设我的功能如下:

function get_param ($param1, $param2 = 'value2', $start = 0, $end = 0){
   //do stuff with params
}

我在一个html页面中调用了不同的时间,该页面有两个ajax POST调用php脚本。

第一个ajax调用只传递第一个参数(param1),第二个传递所有参数(param1,param2,start,end)。我试图调用get_param()函数总是传递第一个参数(param1),而其他函数只是调用它们(在$_POST数组内)。否则该函数必须使用他的默认值。

这是我的尝试,但它不起作用。

<?php
if($_POST){
include_once '../includes/functions.php';

if(isset($_POST['param2'])) $param2 = $_POST['param2'];
else $param2 = null;

if(isset($_POST['start'])) $start = $_POST['start'];
else $start = null;

if(isset($_POST['end'])) $end = $_POST['end'];
else $end = null;

$result = get_param($_POST['param1'], $param2, $start, $end);
echo $result;
}
?>

1 个答案:

答案 0 :(得分:2)

默认语句仅在您未在其位置传递参数时使用。

$result = get_param($_POST['param1']);

该函数将具有以下值:get_param($ _ POST [&#39; param1&#39;],&#39; value2&#39;,0,0)

如果你想用null做,就像你的代码一样,那么你需要检查参数的值。像这样:

function get_param ($param1, $param2, $start, $end){
   $param2 = ($param2 == null) ? 'value2' : $param2;
   $start = ($start == null) ? 0 : $start;
   $end = ($end== null) ? 0 : $end;
}