php函数调用参数不通过

时间:2014-09-03 02:54:03

标签: php

我正在尝试在按下按钮时将php中的一堆变量传递给函数。该按钮触发函数正常,但某些变量的值不正确。

        <?php
          function Commit($TID,$total,$itemCount,$barcoded,$barcodedQTY,$nonBarcoded,$nonBarcodedQTY)
          {
            var_dump($TID); //int 2 - correct
            var_dump($total); //string '0.00' (length=4) - incorrect
            var_dump($itemCount); //int 1 -incorrect value
            var_dump($barcoded); // array (empty) // incorrect
            var_dump($barcodedQTY); // array (empty) // incorrect
            var_dump($nonBarcoded); // array (empty) // incorrect
            var_dump($nonBarcodedQTY); //null - incorrect

          }
          var_dump($TID); // int 2
          var_dump($total); // string "87.80
          var_dump($itemCount);// int 3
          var_dump($barcoded); // array (size=1) 0 => string '1' (length=1)
          var_dump($barcodedQTY); // array (size=1) 0 => int 4
          var_dump($nonBarcoded); // array (size=1) 0 => string '14' (length=2)
          var_dump($nonBarcodedQTY); // array (size=1) 0 => string '4' (length=1)
          if (isset($_REQUEST['commit']))
          {
            if(isset($TID,$total,$itemCount,$barcoded,$barcodedQTY,$nonBarcoded,$nonBarcodedQTY))
            {
              Commit($TID,$total,$itemCount,$barcoded,$barcodedQTY,$nonBarcoded,$nonBarcodedQTY);
            }
            else
            {
              echo 'not all variables were set!';
            }
          }
        ?>

      <div class="row" id="powerwidgets">
        <div class="col-md-12 bootstrap-grid">
            <form>
            <button class="btn btn-success" name="commit" style="float:right;margin-right:5em">Commit</button>
            <button class="btn btn-danger" name="revert" style="float:right;margin-right:14em" onClick="location.href ='index.php'">Cancel</button>
          </form>
      </div>
    </div>

1 个答案:

答案 0 :(得分:0)

使用变量调用commit:

$TID,$total,$itemCount,$barcoded,$barcodedQTY,$nonBarcoded,$nonBarcodedQTY

你有机会确认他们都有价值观。您需要使用isset()检查每个人 - 您也可以在三元运算符中执行此操作。

// isset check before assigning variables

if (!isset($_REQUEST['TID'], $_REQUEST['total'], ...)) die(); // something wasn't set

$TID = $_REQUEST['TID'];
$total = $_REQUEST['total'];
...


/////////////////////////
/////////////////////////


// ternary operators

$TID = isset($_REQUEST['TID']) ? $_REQUEST['TID'] : "default value"; // don't forget to sanitize!
$total = isset($_REQUEST['total']) ? $_REQUEST['total'] : "another default value"; // don't forget to sanitize!

// if default values are not desired, just set the "default" as ""
// and check if variables != ""

如果没有更多代码,这可以获得尽可能多的帮助。