字符串为什么能这样比较?

<?php

    $str = $_GET['ori'];
    echo "$str 的ASCII值为:" . ord($str) . "<br/>";
    
    if ($str > 0x01) {
        echo "大于";
    } else {
        echo "小于等于";
    }

想知道 > $str > 0x01 这块的比较规则是怎样的,能查到的几种规则都是 字符串之间或者字符串和数字之间的比较,但是感觉这里不太符合。

P.S. 答案里面带应该的就不用回答了。

阅读 2.8k
4 个回答

那应该不是字符,而是字符转成ASCII值后和0x01比较

0x01不就是16进制吗

ord()函数的作用是返回字符串第一个字符的ASCII码值,而只有字符串为空时,它的ASCII码值才会小于0x01。

你这里是十六进制的比较,就好像是十进制的比较一样,只是你接收过来的就是一个十六进制数字,
同时,进行ord操作也只是返回一个你可以认识的数字出来。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题