Php 你能解释一下为什么会发生这种情况吗?

Php 你能解释一下为什么会发生这种情况吗?,php,Php,你能帮我理解这个代码吗 $turl = get_bloginfo('home'); if ( $lang_current == "en" OR "ru" ) { $location = str_replace ($turl,$turl."/".$lang_current,$location); } return $location; 我不明白为什么,即使$lang\u current==ka,为什么我仍然激活str\u replace 我希望这个代码str_repla

你能帮我理解这个代码吗

  $turl = get_bloginfo('home');

  if ( $lang_current == "en" OR "ru" ) {
    $location = str_replace ($turl,$turl."/".$lang_current,$location);
  }


return $location;
我不明白为什么,即使$lang\u current==ka,为什么我仍然激活str\u replace


我希望这个代码str_replace只在语言为en或ru时才起作用,如果使用任何其他语言,我只需要它返回$location。。。但事实并非如此!这让我发疯,因为我不理解它。

ru总是正确的。。。你需要把

  if ( $lang_current == "en" OR $lang_current == "ru" ) { 
或:


如是真的。。。你需要把

  if ( $lang_current == "en" OR $lang_current == "ru" ) { 
或:


字符串ru将计算为1 true,因为您没有将字符串与任何内容进行比较。基本上,您正在执行以下操作:

if ( ($lang_current == "en") OR ("ru") ) {
您需要比较OR操作数两侧的$lang_current:

if ( $lang_current == "en" OR $lang_current == "ru" ) {

字符串ru将计算为1 true,因为您没有将字符串与任何内容进行比较。基本上,您正在执行以下操作:

if ( ($lang_current == "en") OR ("ru") ) {
您需要比较OR操作数两侧的$lang_current:

if ( $lang_current == "en" OR $lang_current == "ru" ) {
使用$lang\u current==en或$lang\u current==ru使用$lang\u current==en或$lang\u current==ru