2014-10-28 177 views
-2

[10月28日2014年15點46分22秒歐洲/布加勒斯特] PHP公告:未定義 變量:E在 /家庭/ lagramad /的public_html /折扣/系統/模塊/網關/ mobilpay /cardRedirect.php 上線226

 } 
catch (Exception $e) { 


    echo "\r\n<h3>Plata voucher prin card</h3>\r\n"; 

if (!($e instanceof Exception)) 
    echo "<p> \r\n\t<form name=\"frmPaymentRedirect\" method=\"post\" action=\""; 
    echo $paymentUrl; 
    echo "\">\r\n\t<input type=\"hidden\" name=\"env_key\" value=\""; 
    echo $objPmReqCard->getEnvKey(); 
    echo "\"/>\r\n\t<input type=\"hidden\" name=\"data\" value=\""; 
    echo $objPmReqCard->getEncData(); 
    echo "\"/>\r\n\t<p>\r\n\t\tPentru a finaliza plata vei redirectat catre pagina de plati securizata a mobilpay.ro\r\n\t</p>\r\n\t<p>\r\n\t\tDaca nu esti redirectat in 5 secunde apasa <input type=\"image\" src=\"images/12792_mobilpay-96x30.gif\" />\r\n\t</p>\r\n\t</form>\r\n</p>\r\n"; 

    echo "<script type=\"text/javascript\" language=\"javascript\">\r\n\twindow.setTimeout(document.frmPaymentRedirect.submit(), 5000);\r\n</script>\r\n"; 
} else { 
    echo "<p>"; 

    echo "<strong>"; 
    echo $e->getMessage(); 
    echo "</strong></p>\r\n"; 
} 


echo "\r\n\r\n\r\n"; 
return 1; 


?> 
+0

'$ e'只會被定義如有異常實際發生例如'catch'塊被解僱。但是在後面的'if()'中,你無條件地在兩個代碼路徑中使用'$ e'。 – 2014-10-28 14:03:10

回答

0

把你的if語句異常的內部

catch (Exception $e) { if ($e......) { blah vlah blah.... } }

1

$e會存在ONLY如果出現異常:

try { 
    throw new Exception('foo'); 
} catch (Exception $e) { 
    // do nothing 
} 

try { 
    $foo = 1; // no exception occurs 
} catch (Exception $f) { 
    // do nothing 
} 

var_dump($e); // spits out the exception info 
var_dump($f); // undefined variable, because no exception occured to define it