2014-10-29 143 views
-2

我有PHP网站致命错误:调用未定义的函数在PHP

if (isset($_POST['Confirm'])) { 

    $payment = $_SESSION['payment']; 
    $paymode = checkpaymentmode($payment); //get paymentmode code 
    $mtxcd = getmtxcd(); //merchant transaction code 


    if (!function_exists('checkpaymentmode')) { 
     function checkpaymentmode($payment) { 
      if ($payment == 'Amex') { 
       return "A"; 
      } elseif ($payment == 'Direc-Debit') { 
       return "D"; 
      } else { 
       return "C"; 
      } //assume the rest are visa/master 
     } 

    } 

} 

此代码是第一部分确认页面的支付部下面的代码。确认后,执行这些代码。在这个页面中使用一些其他功能以及这个功能。我评论这一个,并尝试与其他人,所有功能都有同样的错误。

Fatal error: Call to undefined function checkpaymentmode() in line33..

任何解决方案??

+0

从逻辑上逐行思考。 *在调用它之后检查函数是否存在。还请阅读错误消息。它实际上是告诉你如何解决这个问题。通过定义函数checkpaymentmode(),这实际上是一个很大的提示:) – 2014-10-29 06:33:40

回答

4

要调用的定义之前的函数

$paymode = checkpaymentmode($payment); //get paymentmode code 

添加功能的函数被调用像以前一样,

if (!function_exists('checkpaymentmode')) { // define the fucntion 
     function checkpaymentmode($payment) { 
      if ($payment == 'Amex') { 
       return "A"; 
      } elseif ($payment == 'Direc-Debit') { 
       return "D"; 
      } else { 
       return "C"; 
      } //assume the rest are visa/master 
     } 

    } 

if (isset($_POST['Confirm'])) { 

    $payment = $_SESSION['payment']; 
    $paymode = checkpaymentmode($payment); //get paymentmode code 
    $mtxcd = getmtxcd(); //merchant transaction code 
    -------------------------- 
} 
2

你打电话定义之前的功能,您需要将您的IF子句定义函数顶端,同样

if (isset($_POST['Confirm'])) { 
    if (!function_exists('checkpaymentmode')) { 
     function checkpaymentmode($payment) { 
      if ($payment == 'Amex') { 
       return "A"; 
      } elseif ($payment == 'Direc-Debit') { 
       return "D"; 
      } else { 
       return "C"; 
      } //assume the rest are visa/master 
     } 

    } 

    $payment = $_SESSION['payment']; 
    $paymode = checkpaymentmode($payment); //get paymentmode code 
    $mtxcd = getmtxcd(); //merchant transaction code 

} 
0

您在实现它之前调用该函数。移位这些代码

$payment = $_SESSION['payment']; 
    $paymode = checkpaymentmode($payment); //get paymentmode code 
    $mtxcd = getmtxcd(); //merchant transaction code 

下面的功能,它应该工作。

相关问题