2009-08-31 2 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; означает:

ЕСЛИ $ authNetCodes [4] имеет значение (IsSet) ТОГДА $ TransactionID = $ authNetCodes [4] ИНАЧЕ $ TransactionID = 0.

$transactionMessage = (isset($authNetCodes[3])) ? $authNetCodes[3] : ""; средство :

IF $ authNetCodes [3] имеет значение (isset) THEN $ transactionMessage = $ authNetCodes [3] ELSE $ transactionID = "" (пустая строка).

+0

Спасибо. Я уверен, что у других есть то же самое или что-то подобное, но в любом случае это самое ясное для меня. Молодцы. И спасибо! – user80151

+0

Рад, что я мог бы помочь! –

2

Если пятые элемент массива authNetCodes установлен, установите это значение в $ TransactionID в противном случае установите его в 0.

Та же история с $ transactionMessage за исключением того, что он будет установлен к строке нулевой длины.

Конструкция <boolean expression> ? <if true> : <if false> является просто сокращением для простой структуры if-else.

+0

И спасибо за напоминание, что это на самом деле пятый элемент. Разве это не фильм? Спасибо за помощь! – user80151

+0

yup - Брюс Уиллис и Милла Йовович. Хорошее кино. –

1

код использует короткую форму, если/иначе: (condition ? if true : if false)

В этом случае, это установка $transactionID к $authNetCodes[4], если она существует, или 0, если он не делает. Он устанавливает $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; 

Ca п читать как

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

+0

Спасибо, это должно быть исправлено! –

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

Набор TransactionID к 5-му элементу authNetCodes, если он установлен, в противном случае 0

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

Set $ ​​transactionMessage к 4-му элементу 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 = ""; 
} 

Что означает:

  • если есть значение с индексом = 4 в массиве $ authNetCodes, затем поместить это значение в $ TransactionID
  • еще, поставить 0 в $ TransactionID

И второе условие:

  • если есть значение с индексом = 3 в $ authNetCodes, а затем положить его значение в $ transactionMessage
  • еще, положить пустую строку в $ transactionMessage


В РНР "?:" является 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; 
} 
Смежные вопросы