Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比较两个字符串_Php_String_Compare - Fatal编程技术网

Php 比较两个字符串

Php 比较两个字符串,php,string,compare,Php,String,Compare,我有一个php脚本不能正常工作 当我使用strcmp测试它时,它在正确的时间返回0,但是if语句仍然返回false keywords.php的内容 <?php $cat_array = array("All Deals","Arts & Crafts","Automotive","Dental","Education & Training","Entertainment","Fashion","Fitness & Health","Floral","Fun &

我有一个php脚本不能正常工作

当我使用strcmp测试它时,它在正确的时间返回0,但是if语句仍然返回false

keywords.php的内容

<?php $cat_array = array("All Deals","Arts & Crafts","Automotive","Dental","Education & Training","Entertainment","Fashion","Fitness & Health","Floral","Fun & Adventure","Home & Garden","Pets","Photography","Restaurants","Spa & Beauty","Sports","Subscriptions","Tours & Attractions","Trade Shows","Travel","Workshops");
$cat_nav_array = array("alldeals","arts_crafts","automotive","dental","education_training","entertainment","fashion","fitness_health","floral","fun_adventure","home_garden","pets","photography","restaurants","spa_beauty","sports","subscriptions","tours_attractions","tradeshows","travel","workshops");

主页的php代码

 <?php 
        require_once("keywords/keywords.php");
        $count = 0;
        $category = $_GET['category'];
        foreach ($cat_array as $link)
        {
            $count++;
        }
        for ($i = 0; $i <= $count; $i++)
        {
            $link = $cat_nav_array{$i};
            $text = $cat_array{$i};

            if ($category === $link) 
            {
            ?>
                <li><a class="ch_selected" href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
            <?php 
            } 
            else
            {?>
                <li><a href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link ?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
            <?php
            }
        } ?>

  • 工作代码:

        <?php 
            require_once("keywords/keywords.php");
            $count = 0;
            $category = strtolower($_GET['category']);
            foreach ($cat_array as $link)
            {
                $count++;
            }
            for ($i = 0; $i <= $count; $i++)
            {
                $link = $cat_nav_array{$i};
                $text = $cat_array{$i};
    
                $same = strcmp($link, $category);
    
                if ($same != 0) 
                {
                ?>
                    <li><a href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
                <?php 
                } 
                else
                {?>
                    <li class="ch_selected"><a href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link ?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
                <?php
                }
            } ?>
    
    
    

  • if($catagory===$link)
    试着在if行的前面做一个
    var\u转储($link,$catagory)
    ,看看这两个变量是否真的相同。

    我的答案可能有点离题,但如果我回忆正确,那不是比较字符串的方法。
    请参考以下内容:

    var\u在if语句之前转储这两个变量,并将其发布到此处。您为什么不在
    $\u GET['category']
    上应用
    strtolower
    ?您还缺少
    echo
    此处
    。它应该是
    我不需要在$\u GET['catagory']bc上使用strtolower,因为它已经是小写的了。但是要确定的是,如果
    =
    给出false,你应该
    strtolower
    也应该是$\u GET(以及清理它,你永远不知道用户是否要手动编写它并使用所有大写字母),然后,在比较类型时,
    ==
    也会给出false。我同意你的观点,
    ==
    总是比
    =
    好,但在这种情况下,它无法解决解释差异的问题。比较字符串没有“正确的方式”或“错误的方式”——这完全取决于你试图通过比较实现什么。唯一可能被定义为“错误”的是错误地使用赋值运算符(=)而不是比较运算符(=)。这在PHP中并不重要,在基于目标的语言(如Java或JavaScript)中很重要,
    String
    是一个对象,比较两个字符串将返回false(因为你不是在比较值,你是在比较指向内存中对象的指针)。我不知道你的“对”和“错”是什么,但就我而言,如果操作符在我的书中没有正确地比较字符串(事实上它没有),这是错误的做法。如果用户查看链接,我认为他会找到他需要的东西。