/ / PHP - Refactoring / इफ़ेक्ट्स को सुधारना - php, refactoring

PHP - रिफैक्टरिंग / इफ्स सुधारना - 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";
}

मैंने कुछ शर्तों को हटाकर IFs को सरल बनाया है।

क्या कोई ऐसा करने का बेहतर तरीका सुझा सकता है?

उत्तर:

जवाब के लिए 0 № 1

शायद in_array () पद्धति का उपयोग करने का प्रयास करें

php.net in_array ()


जवाब के लिए 0 № 2

इस तरह के संदर्भों का उपयोग करने का प्रयास करें:

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

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

बस, कोड को कम करने के लिए पहला कदम है