str_replace你能解释一下为什么会这样吗?

时间:2012-09-28 15:26:29

标签: php

你能帮我理解这段代码吗?

  $turl = get_bloginfo('home');

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


return $location;

我不明白为什么,即使$lang_current == "ka"为什么我仍然激活了str_replace?

我期待这段代码str_replace仅在语言为en或ru时才能工作,如果使用任何其他语言我只需返回$ location ...但这不是会发生的事情!这让我疯狂,因为我不明白。

2 个答案:

答案 0 :(得分:4)

“ru”总是如此......你需要把

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

或:

  if ( in_array( $lang_current, array ( "en", "ru" ) ) ) {

答案 1 :(得分:3)

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

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

你需要在OR操作数的两边比较$ lang_current:

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