Aktuelle Codes:
<?php
// See the AND operator; How do I simplify/shorten this line?
if( $some_variable !== 'uk' && $some_variable !== 'in' ) {
// Do something
}
?>
Und:
<?php
// See the OR operator; How do I simplify/shorten this line?
if( $some_variable !== 'uk' || $some_variable !== 'in' ) {
// Do something else
}
?>
Gibt es eine einfachere (d. H. Kürzere) Möglichkeit, die beiden Bedingungen zu schreiben?
HINWEIS: Ja, sie sind unterschiedlich und ich erwarte verschiedene Möglichkeiten, die Codes zu verkürzen.
Für Ihren ersten Code können Sie eine kurze Änderung von der Antwort von @ShankarDamodaran mit in_array()
if ( !in_array($some_variable, array('uk','in'), true ) ) {
ist das gleiche wie:
if ( $some_variable !== 'uk' && $some_variable !== 'in' ) {
... aber kürzer Vor allem, wenn Sie mehr als nur "uk" und "in" vergleichen. Ich verwende keine zusätzliche Variable (Shankar verwendete $ os), sondern definiere das Array in der if-Anweisung. Manche finden das schmutzig, ich finde es schnell und ordentlich: D
Das Problem mit Ihrem zweiten Code ist, dass er einfach mit TRUE ausgetauscht werden kann, da:
if (true) {
gleich
if ( $some_variable !== 'uk' || $some_variable !== 'in' ) {
Sie fragen, ob der Wert einer Zeichenfolge nicht A oder Nicht B ist. Wenn es A ist, ist es definitiv nicht auch B, und wenn es B ist, ist es definitiv nicht A. Und wenn es C oder wörtlich etwas anderes ist, ist es auch nicht A und nicht B. Also stimmt diese Aussage immer (unter Berücksichtigung des schrödingers Gesetzes) nicht.
Sie können in_array()
in PHP verwenden.
$os = array("uk", "us"); // You can set multiple check conditions here
if (in_array("uk", $os)) //Founds a match !
{
echo "Got you";
}
Sie müssen mehrere Werte überprüfen. Versuchen Sie es mit folgendem Code:
<?php
$illstack=array(...............);
$val=array('uk','bn','in');
if(count(array_intersect($illstack,$val))===count($val)){ // all of $val is in $illstack}
?>
Wenn Sie planen, eine Funktion in der if-Anweisung zu erstellen, würde ich auch die Verwendung von in_array empfehlen. Es ist viel sauberer.
Wenn Sie versuchen, Variablen Werte zuzuweisen, können Sie die Abkürzung if/else verwenden:
$variable_to_fill = $some_variable !== 'uk' ? false : true;
Einige grundlegende Regex würde den Trick gut für $some_variable !== 'uk' && $some_variable !== 'in':
if(!preg_match('/^uk|in$/', $some_variable)) {
// Do something
}