簡體   English   中英

PHP函數調用參數不通過

[英]php function call parameters not passing

我試圖在按下按鈕時將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>

您使用以下變量調用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 != ""

如果沒有更多的代碼,這將為您帶來盡可能多的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM