2009-08-31 77 views
1

我正在修改支付網關的一些現有代碼,我不確定這是什麼意思。它是否說像從網關回來的數組的第4個元素?如果有人能告訴我這意味着什麼,這將是一個很大的幫助。任何人都可以把它翻譯成純英文? PHP翻譯?

$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0; 
$transactionMessage = (isset($authNetCodes[3])) ? $authNetCodes[3] : ""; 

任何幫助,將不勝感激。

感謝, JK

回答

7

這是一對三元操作。

$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0;指:

IF $ authNetCodes [4]具有值(isset)THEN $ TRANSACTIONID = $ authNetCodes [4] ELSE $ TRANSACTIONID = 0

$transactionMessage = (isset($authNetCodes[3])) ? $authNetCodes[3] : "";裝置:

IF $ authNetCodes [3]有一個值(isset)然後 $ transactionMessage = $ authNetCodes [3] ELSE $ transactionID =「」(空字符串)。

+0

謝謝。我相信其他人有相同的事情或類似的事情,但是這對我來說是最清楚的。 幹得好。我的謝意! – user80151 2009-08-31 17:50:30

+0

很高興能幫到你! – 2009-08-31 18:01:23

2

如果authNetCodes數組的第5個元素設定,該值設置爲$ TRANSACTIONID否則以$ transactionMessage將其設置爲0。

同樣的故事不同的是,它會成爲爲零長度的字符串。

<boolean expression> ? <if true> : <if false>構造只是一個簡單的if-else結構的簡寫。如果存在(condition ? if true : if false)

在這種情況下,它的設置$transactionID$authNetCodes[4],或0如果沒有:

+0

並感謝提醒我們,它實際上是第5個元素。 這不是一部電影嗎? 感謝您的幫助! – user80151 2009-08-31 17:51:05

+0

是 - 布魯斯威利斯和米拉喬沃維奇。值得一看的電影。 – 2009-08-31 17:55:03

1

的代碼使用的if/else的縮寫形式。如果存在,則設置爲$transactionMessage$authNetCodes[3];如果不存在,則設置爲空字符串。

1

它只是一個賦值語句

如果$ authNetCodes [4]的值爲該值設置爲$ TRANSACTIONID,否則設置$ TRANSACTIONID等於0

其同爲其他聲明。

1

如果$ authNetCodes [4]被設置(不爲空),那麼 $ TRANSACTIONID = $ authNetCodes [4] 別的 $ TRANSACTIONID = 0

如果$ authNetCodes [3]被設置(不爲空),那麼 $ transactionMessage = $ authNetCodes [3] 別的 $ transactionMessage = 「」 //空字符串

1

$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0; 

鈣N爲讀作

if (isset($authNetCodes[4])) 
{ 
    $transactionID = $authNetCodes[4]; 
} 
else 
{ 
    $transactionID = 0; 
} 

類似地,本

$transactionMessage = (isset($authNetCodes[3])) ? $authNetCodes[3] : ""; 

可以讀作

if((isset($authNetCodes[3]))) 
{ 
    $transactionMessage = $authNetCodes[3]; 
} 
else 
{ 
    $transactionMessage = ""; 
} 

在普通的英語,兩個代碼片段說「如果這個數組元素被設置時,分配該數組元素的值給這個變量,否則分配一些其他值(0和空字符串)。 ? :構造稱爲ternary運算符。

+1

您的第一個代碼塊else語句應該是: $ transactionID = 0; – Jeff 2009-08-31 21:45:12

+0

謝謝,應該修復! – 2009-08-31 22:13:13

1
$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0; 

設置TRANSACTIONID,如果它被設置authNetCodes的第5個元素,否則爲0

$transactionMessage = (isset($authNetCodes[3])) ? $authNetCodes[3] : ""; 

設置$ transactionMessage,如果它被設置authNetCodes的第四元素,否則爲空字符串。

1

第一:

 
$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0; 

這意味着,如果$ authNetCodes的第五元素(記住,數組是零索引!)的值,然後設置$ TRANSACTIONID爲該值。否則,設置$ TRANSACTIONID 0

二:

 
$transactionMessage = (isset($authNetCodes[3])) ? $authNetCodes[3] : ""; 

同樣,如果authNetCodes的第四個元素具有一個值,設置$ transactionMessage爲該值。否則,將$ transactionMessage設置爲一個空字符串。

只要$ authNetCodes來自哪裏,這段代碼就不說了。

1

此代碼可以被重新寫成這樣:

if (isset($authNetCodes[4])) { 
    $transactionID = $authNetCodes[4]; 
} else { 
    $transactionID = 0; 
} 

if (isset($authNetCodes[3]) { 
    $transactionMessage = $authNetCodes[3]; 
} else { 
    $transactionMessage = ""; 
} 

這意味着:

  • 如果在$ authNetCodes陣列中索引= 4的值,然後把該值在$ TRANSACTIONID
  • 一樣,在$ TRANSACTIONID

放0而且,對於第二個條件:

  • 如果在索引值= 3 $ authNetCodes,然後把它的價值在$ transactionMessage
  • 一樣,把一個空字符串在$ transactionMessage


在PHP中, 「?:」 是Ternary Operator

1

$ TRANSACTIONID值是:(如果$ authNetCodes [4]具有值,給它的值,否則爲0) $ transactionMessage是:(如果$ authNetCodes [3 ]具有值,給出其值,否則 「」。)

1

操作<condition expr>?<true expr>:<false expr>conditional operator。如果<condition expr><true expr>評估,<false expr>否則。

你的陳述

$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0; 

相同

if (isset($authNetCodes[4])) { 
    $transactionID = $authNetCodes[4]; 
} else { 
    $transactionID = 0; 
}