/ / PHP - Рефакторинг / подобряване на Ifs - php, refactoring

PHP - Refactoring / подобряване на Ifs - php, refactoring

Имам следната структура на данните;

Array ( [0] => Array ([suit] => c [rank] => A )
[1] => Array ( [suit] => d [rank] => A ) )

Искам да тествам дали тези карти са определени стойности и показват подходящо съобщение;

if (
(($hand[0]["rank"] == "A") && ($hand[1]["rank"] == "A"))
|| (($hand[0]["rank"] == "K") && ($hand[1]["rank"] == "K"))
|| (($hand[0]["rank"] == "Q") && ($hand[1]["rank"] == "Q"))
|| (($hand[0]["rank"] == "A") && ($hand[1]["rank"] == "K"))
|| (($hand[0]["rank"] == "K") && ($hand[1]["rank"] == "A"))
) {
echo "Action: Raise pre-flop. Re-raise if already raised.<br />n";
}

if (
(($hand[0]["rank"] == "7") && ($hand[1]["rank"] == "7"))
|| (($hand[0]["rank"] == "A") && ($hand[1]["rank"] == "J") && ($hand[0]["suit"] == $hand[1]["suit"]))
|| (($hand[0]["rank"] == "J") && ($hand[1]["rank"] == "Q") && ($hand[0]["suit"] == $hand[1]["suit"]))
|| (($hand[0]["rank"] == "10") && ($hand[1]["rank"] == "J") && ($hand[0]["suit"] == $hand[1]["suit"]))
) {
echo "Action: Worth a call pre-flop (provided no-one has raised).<br />n";
}

Аз опростих IF-тата, като премахнах някои от условията.

Може ли някой да предложи по-добър начин да направите това?

Отговори:

0 за отговор № 1

Може би ще се опитате да използвате in_array () метода

php.net in_array ()


0 за отговор № 2

Опитайте се да използвате позовавания по следния начин:

$rank0 =& $hand[0]["rank"];
$rank1 =& $hand[1]["rank"];

if (
($rank0 == "A" && $rank1 == "A")
|| (...)

Просто като първа стъпка за минимизиране на кода