我有代码:
function insertChamado($id, $area = 2)
{
if ($area != 2 && $area != 4)
$area = 2;
如何将此代码调整为不接受0条件,如下面的日志所示:
[12-May-2016 16:58:28 America/Sao_Paulo] id = 36445, area = 0
[12-May-2016 16:59:00 America/Sao_Paulo] id = 14635, area = 0
[12-May-2016 17:00:02 America/Sao_Paulo] id = 18599, area = 0
答案 0 :(得分:2)
只需添加一个条件来检查它......不确定它有什么用处,除非我们遗漏了什么。
function insertChamado($id, $area = 2)
{
if ($area == 0) die("Ruh-Rohh");
if ($area != 2 && $area != 4)
$area = 2;
}
或者,如果它是0,则预计它为2:
function insertChamado($id, $area = 2)
{
if (($area != 2 && $area != 4) || $area == 0) // Though || $area == 0 actually does nothing here as 0 already meets the previous condition.
$area = 2;
}
事实上,在我的原始代码中,$ area永远不会是0!因为0!= 2和0!= 4因此$ area = 2.我怀疑实施问题,如果这没有帮助我建议您编辑问题以包含更多代码。
可能是范围问题,因为您没有使用全局$区域而且没有返回值,更改后的$ area可能不会突破该功能。
尝试其中一种实现:
使用全球
$area = 0; // for testing only
function insertChamado($id)
{
global $area;
if ($area != 2 && $area != 4)
$area = 2;
}
或使用退货:
$area = insertChamado(0,0);
function insertChamado($id, $area = 2)
{
if ($area != 2 && $area != 4)
$area = 2;
return $area;
}
您提供的不完整代码无效,因为我不知道id
的实现是什么。
答案 1 :(得分:0)
仔细阅读您的问题后,我认为您的最佳解决方案是简单的switch
。
function insertChamado($id, $area = 2){
switch ($area) {
case 2:
echo "area equals 2\n";
break;
case 4:
echo "area equals 4\n";
break;
default:
echo "area is always 2 other wise\n";
}
}
insertChamado('id',0); // will output "area is always 2 other wise"
insertChamado('id'); // will output "area equals 2"