Кто-нибудь может перевести это на простой английский? Перевод PHP? - PullRequest
1 голос
/ 31 августа 2009

Я работаю над модификацией существующего кода для платежного шлюза, и я не уверен, что это значит. Это говорит что-то вроде 4-го элемента массива, возвращающегося из шлюза? Если кто-то может сказать мне, что это значит, это будет большая помощь.

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

Любая помощь будет оценена.

Спасибо, JK

Ответы [ 11 ]

7 голосов
/ 31 августа 2009

Это пара троичных операций.

$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0; означает:

IF $ authNetCodes [4] имеет значение (isset) THEN $actionID = $ authNetCodes [4] ELSE $ транзакция ID = 0.

$transactionMessage = (isset($authNetCodes[3])) ? $authNetCodes[3] : ""; означает:

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

2 голосов
/ 31 августа 2009

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

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

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

1 голос
/ 31 августа 2009

Оператор <condition expr> ? <true expr> : <false expr> является условным оператором . Если <condition expr> равно true , <true expr> оценивается, <false expr> в противном случае.

Ваше заявление

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

совпадает с

if (isset($authNetCodes[4])) {
    $transactionID = $authNetCodes[4];
} else {
    $transactionID = 0;
}
1 голос
/ 31 августа 2009

Значение $actionID равно: (Если $ authNetCodes [4] имеет значение, укажите его значение, иначе 0.) $actionMessage: (Если $ authNetCodes [3] имеет значение, укажите его значение, иначе "".)

1 голос
/ 31 августа 2009

Этот код можно переписать так:

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

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

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

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

А, для второго условия:

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


В PHP "?:" - это Тернарный оператор

1 голос
/ 31 августа 2009

Первый:

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

Это означает, что, если пятый элемент $ authNetCodes (помните, массивы с нулевым индексированием!) Имеет значение, тогда установите для $actionID значение. В противном случае установите $ транзакции на 0.

Второе:

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

Аналогичным образом, если четвертый элемент authNetCodes имеет значение, задайте для этого параметра значение $actionMessage. В противном случае установите для $actionMessage пустую строку.

Откуда берется $ authNetCodes, этот код не говорит.

1 голос
/ 31 августа 2009
$transactionID = (isset($authNetCodes[4])) ? $authNetCodes[4] : 0;

Установить значение ID для 5-го элемента authNetCodes, если оно установлено, в противном случае 0

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

Установите для $actionMessage 4-й элемент authNetCodes, если он задан, в противном случае - пустую строку.

1 голос
/ 31 августа 2009

Это

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

Может читаться как

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 и пустую строку). называется троичный оператор.

1 голос
/ 31 августа 2009

если установлено значение $ authNetCodes [4] (не ноль), то $actionID = $ authNetCodes [4] еще $actionID = 0

если установлено значение $ authNetCodes [3] (не ноль), то $actionMessage = $ authNetCodes [3] еще $actionMessage = "" // Пустая строка

1 голос
/ 31 августа 2009

это просто оператор присваивания

если $ authNetCodes [4] имеет значение, для которого установлено значение $actionID, в противном случае значение $actionID равно 0.

то же самое для другого утверждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...