V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cssnote
V2EX  ›  PHP

一般怎么判断搜索的input?判断变量“非空但允许为零”吗?

  •  
  •   cssnote · 2013-07-14 08:20:18 +08:00 · 3538 次点击
    这是一个创建于 4149 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    1970-01-01 08:00:00 +08:00
    arron
        1
    arron  
       2013-07-14 08:39:11 +08:00
    同求

    我现在用这

    strlen(trim( $str ));
    cssnote
        2
    cssnote  
    OP
       2013-07-14 08:58:54 +08:00
    @arron

    你是用 !$str 、empty($str)、还是$str=='' ???
    arron
        3
    arron  
       2013-07-14 09:13:19 +08:00
    觉得可以用这个:

    $str || $str === "0"

    下面这个可以顺便滤掉空白参数

    strlen( trim( $str ) )
    cssnote
        4
    cssnote  
    OP
       2013-07-14 09:33:23 +08:00
    @arron 你说听这个完整应该怎么写?

    直接用 $str ==' ' 更简单啊
    arron
        5
    arron  
       2013-07-14 09:46:53 +08:00
    恩, 测了下 $str == '' 可以.
    123123
        6
    123123  
       2013-07-14 09:58:57 +08:00 via Android
    如果是警告报 notice 不要紧吗
    cssnote
        7
    cssnote  
    OP
       2013-07-14 10:04:13 +08:00
    @123123 不明白你说的
    dongbeta
        8
    dongbeta  
       2013-07-14 10:12:12 +08:00
    一般情况下,搜索条件的:
    1. 是一个有意义的搜索条件(去掉特殊字符,无意义字符)
    2. 处理过的字符串长度大于特定长度(比如 3 个字符)


    @cssnote 程序做到 notice free 很要紧。
    msg7086
        9
    msg7086  
       2013-07-14 10:48:34 +08:00
    "非空但允许为零"

    直接判断非空就行了。 isset($_GET['q']) && trim($_GET['q']) !== ''
    cssnote
        10
    cssnote  
    OP
       2013-07-14 21:43:31 +08:00
    @msg7086

    你这句里面能去除isset吗,会有什么影响 ?
    msg7086
        11
    msg7086  
       2013-07-15 05:55:23 +08:00
    @cssnote 判断数组里是否有这个项目。直接引用会报错并严重降低性能。
    picasso250
        12
    picasso250  
       2013-07-15 12:49:29 +08:00
    @msg7086 把“严重”二字去掉吧
    这更多的关乎严谨。
    msg7086
        13
    msg7086  
       2013-07-15 13:34:00 +08:00
    @picasso250 嗯,主要是best practice的问题,但是我记得以前有人说过产生任何错误都会造成额外的性能损失,而且很大。
    picasso250
        14
    picasso250  
       2013-07-15 16:27:09 +08:00
    @msg7086 “而且很大”,我觉得那人夸张了。

    当然,我也是支持使用isset的。这种用户输入,自然要小心。
    cssnote
        15
    cssnote  
    OP
       2013-07-15 17:07:05 +08:00
    @msg7086
    @picasso250

    任其输入任何内容,不都isset了吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3688 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:09 · PVG 13:09 · LAX 21:09 · JFK 00:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.