yxwzaxns
V2EX  ›  PHP

php 是最好的语言。。

  •  
  •   yxwzaxns · Nov 1, 2015 · 5443 views
    This topic created in 4028 days ago, the information mentioned may be changed or developed.

    那么问题来了,这个问题怎么理解:

    <?php
    
    foreach ($_POST as $key => $value) {
        $_POST[false]=$value;
    }
    
    var_dump($_POST);
    
    ?>
    

    post 数据 w:123 a=456

    结果:

    array(3) {
    ["w"]=>
    string(3) "123"
    ["a"]=>
    string(3) "456"
    [0]=>
    string(3) "456"
    }
    
    Supplement 1  ·  Nov 1, 2015
    protected function _clean_input_keys($str, $fatal = TRUE)
    {

    if ( ! preg_match('/^[a-z0-9:_\/|-]+$/i', $str))
    {
    if ($fatal === TRUE)
    {
    return FALSE;
    }
    else
    {
    echo 'Disallowed Key Characters.';
    exit(7); // EXIT_USER_INPUT
    }
    }

    // Clean UTF-8 if supported
    if (UTF8_ENABLED === TRUE)
    {
    return $this->uni->clean_string($str);
    }

    return $str;
    }

    if (is_array($_POST) && count($_POST) > 0)
    {
    foreach ($_POST as $key => $val)
    {
    $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val);

    }

    }

    这是 ci 里对 post data key 进行处理的过程
    Supplement 2  ·  Nov 1, 2015
    如果提交有类似 [ ] 的 key ,好像 clean post data 处理完并没有什么卵用
    23 replies  •  2015-11-02 14:33:10 +08:00
    lizheming
    lizheming
    Nov 1, 2015❤️1
    1
    belain
    belain
    Nov 1, 2015
    2
    <?php

    foreach ($_POST as $key => $value) {
    $_POST[0]=$value;
    }

    var_dump($_POST);

    ?>

    很难理解?
    maddot
    maddot
    Nov 1, 2015
    3
    呵呵
    aprikyblue
    aprikyblue
    Nov 1, 2015
    4
    > // 键( key )可是是一个整数 integer 或字符串 string
    GGGG430
    GGGG430
    Nov 1, 2015
    5
    0 和 '' 都相当于空字符和 false
    towser
    towser
    Nov 1, 2015
    6
    false 被转换成 0 了。你是最好的程序员。
    Tianpu
    Tianpu
    Nov 1, 2015
    7
    构造这种明显错误的语法究竟是为了什么?
    odirus
    odirus
    Nov 1, 2015
    8
    何必为了黑而黑呢?如果你觉得自己牛逼,那首先你应该知道某种语言的缺陷,其次你还能规避或者用其他语言来弥补。你是连缺陷都不了解呢?还是不会其他拿手语言呢?
    yxwzaxns
    yxwzaxns
    OP
    Nov 1, 2015
    9
    @odirus 然而我并没有这个想法,我只是不理解罢了,不知道你怎么会这样想
    odirus
    odirus
    Nov 1, 2015
    10
    你这个标题让人看了就觉得。。,我也写过很长时间的 PHP ,不过遇到问题我会去先尝试解决,再回来总结。如果你提问,请认真提问。
    MaiCong
    MaiCong
    Nov 1, 2015
    11
    不是语言的锅,是你为什么要这样写。
    pseudo
    pseudo
    Nov 1, 2015
    12
    莫名其妙
    lincanbin
    lincanbin
    Nov 1, 2015 via Android
    13
    低端黑
    raincious
    raincious
    Nov 1, 2015
    14
    哈哈哈,楼上觉得楼主问题“莫名其妙”的,可以看这里的第二题以及答案:
    https://www.v2ex.com/t/228831
    lincanbin
    lincanbin
    Nov 1, 2015 via Android
    15
    这证明了 PHP 鲁棒性强,写其他语言里会爆炸的语句,竟然也能正常运行。
    PHP 对于 *个别群体* 的容忍度太高,这点不太好。
    dangyuluo
    dangyuluo
    Nov 1, 2015
    16
    又是一个最好的程序员
    wdlth
    wdlth
    Nov 1, 2015
    17
    JS 能钻空子的还要多……
    lk1ngaa7
    lk1ngaa7
    Nov 1, 2015
    18
    有意思? php 写得好,对你本身的编程功底要求是非常高的
    kaka8wp
    kaka8wp
    Nov 2, 2015
    19
    false 转换成 0 , Array([w] => 123 [a] => 456 [0] => 456)。[w] => 123 和[0] => 456 是不一样的。
    dcsite
    dcsite
    Nov 2, 2015
    20
    你是最好的程序员~
    够低端
    ifconfig
    ifconfig
    Nov 2, 2015
    21
    you sucks
    adexbn
    adexbn
    Nov 2, 2015
    22
    这个标题是用来解决女朋友叫你出去陪她逛街问题的
    t2doo
    t2doo
    Nov 2, 2015
    23
    不喜欢 PHP 可以不写嘛,不要这么为难自己,去写 JAVA 吧,那也是不错的语言,哈哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2521 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 04:42 · PVG 12:42 · LAX 20:42 · JFK 23:42
    ♥ Do have faith in what you're doing.