假设我的功能如下:
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;
}
?>
答案 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;
}