子逻辑功能

时间:2014-03-20 06:48:08

标签: php substr

我想询问 substr()函数。我有这样的代码:

<?php    
$word = 'diriku';
    $word2 = $word;
    //first condition
    if ( (substr($word,-3)=="kah") or (substr($word,-3)=="lah") or (substr($word,-3)=="pun") or (substr($word,-3)=="nya"))
{
    $word2 = substr($word,0,-3);
}
    //second condition
else if( (substr($word,-2)=="ku") or (substr($word,-2)=="mu") )
{
    $word2 = substr($word,-2);
}
    echo $word2;
    echo "<br />";
    echo $word;
?>

结果必须是: DIRI ,但我不知道为什么结果 DIR 。我的观点是 substr 在第一个条件下被切断,尽管它是真的还是假的。

所以任何人都知道如何逻辑比较substr函数,所以如果第一个条件为true,则传递else,如果cond为false,则继续为else,而不是总是为真。

很抱歉这个混乱的解释..我不知道如何清楚地描述它。

3 个答案:

答案 0 :(得分:1)

请试一试。

if ( (substr($word,-3)=="kah") or (substr($word,-3)=="lah") or (substr($word,-3)=="pun") or (substr($word,-3)=="nya"))

您的第三个条件似乎有问题

答案 1 :(得分:1)

 <?php
        $word = 'songsangkukah';
        $word2 = $word;

        if ( (substr($word,-3)=="kah") or (substr($word,-3)=="lah") or (substr($word,-3)=="pun") or (substr($word,-3)=="nya"))
        {
           $word2 = substr($word, 0 , -3);
        }

        if((substr($word2,-2)=="ku")or(substr($word2,-2)=="mu"))
        {
            $word2 = substr($word2 , 0 , -2);
        }

        echo $word2;
        echo "<br />";
        echo $word;
    ?>

你走了。所需的输出。

答案 2 :(得分:-1)

请检查您的代码。

substr($word,-3=="pun"), 

// it should be 

(substr($word,-3)=="pun")