2016-11-15 2 views
0

Ich sah es herum und nicht sicher, ob es in JS oder PHP war, aber wenn es in PHP möglich wäre, wäre das großartig! Wenn nicht, wie würde ich ohne IF weitermachen, wenn nicht ohne eins, wie gehe ich dann mit einem davon aus?Machen Sie ein OR in PHP Variable?

Code:

$myvar = str_replace("hello","jpg",$myvar) || str_replace("hello","gif",$myvar); //Didnt work 

und ich versuchte:

$myvar = (str_replace("hello","jpg",$myvar) || str_replace("hello","gif",$myvar)); //Didnt work 

Im Grunde, was ich versuche, hier zu erreichen ist, was auch immer man laufen, die zurück in Erfüllung geht. Wenn es nicht tun kann: str_replace("hello","jpg",$myvar) dann tun Sie str_replace("hi","gif",$myvar). Jetzt habe ich versucht, ein IF, aber das hat auch nicht funktioniert.

My Wenn das auch nicht funktioniert hat:

if (str_replace("hello","jpg",$myvar) == true) 
{ 
    $myvar = str_replace("hello","jpg",$myvar); 
} 
else if (str_replace("hello","gif",$myvar) == true) 
{ 
    $myvar = str_replace("hello","gif",$myvar); 
} 
+0

Sie könnten wahrscheinlich einfach 'strpos()! == false' verwenden, um dies zu überprüfen, dann benutzen Sie' str_replace() '. Siehe das Handbuch für 'strpos()' Verwendung: http://php.net/manual/en/function.strpos.php – Rasclatt

+1

Ihr Code macht keinen Sinn; 'str_replace()' gibt keinen booleschen Wert zurück. – SLaks

+1

Nach [docs] (http://php.net/manual/en/function.str-replace.php) gibt 'str_replace' zurück _Diese Funktion gibt eine Zeichenfolge oder ein Array mit den ersetzten Werten zurück wird niemals "falsch" bewerten. –

Antwort

3

Einfache Lösung:

// if you have `hello` in a string - replace it 
if (strpos($myvar, 'hello') !== false) { 
    $myvar = str_replace("hello","jpg",$myvar); 
} else { 
    // else replace `hi`, 
    // if there's no `hi` in a string - it doesn't matter 
    $myvar = str_replace("hi","gif",$myvar); 
} 
+0

Großartige Idee, aber merkte, meine Saite wird nie hallo drin haben nur Hallo. +1 obwohl. – irishwill200

2
$myvar = (strpos($myvar, 'hello') !== false) ? str_replace('hello', 'jpg', $myvar) : str_replace('hi', 'gif', $myvar); 

ODER

if (strpos($myvar, 'hello') !== false) 
{ 
    $myvar = str_replace('hello', 'jpg', $myvar); 
} 
elseif (strpos($myvar, 'hi') !== false) 
{ 
    $myvar = str_replace('hi', 'gif', $myvar); 
} 
+0

Großartige Idee, aber ich merkte, dass meine Saite niemals hallo drin haben wird, sondern nur hallo. Ich habe meine Frage aktualisiert. Habe den Tippfehler gar nicht bemerkt! +1 obwohl. – irishwill200

0

Oder nur ein Array verwenden:

$myvar = str_replace(array('hello', 'hi'), array('jpg', 'gif'), $myvar);