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

数组下不能使用连接符"."?

  •  
  •   mengzc · 2018 年 4 月 24 日 · 4110 次点击
    这是一个创建于 2835 天前的主题,其中的信息可能已经有所发展或是发生改变。
    echo "<".$row_user_server_ip['server_name'].">";
    这种情况下最后一个.会导致数组变量失效,如何处理?
    16 条回复    2018-05-12 00:00:42 +08:00
    mengzc
        1
    mengzc  
    OP
       2018 年 4 月 24 日
    <和>同时存在会导致数组变量无法正确输出。
    jfcherng
        2
    jfcherng  
       2018 年 4 月 24 日
    你這是被瀏覽器認為是 HTML Tag 了吧
    master
        3
    master  
       2018 年 4 月 24 日
    R18
        4
    R18  
       2018 年 4 月 24 日
    我觉得吧是 $row_user_server_ip['server_name'] 为空,或为非字符串类型转化的过程中被转化成空?
    wkan
        5
    wkan  
       2018 年 4 月 24 日 via iPhone
    被当成 html 标签了
    chenxytw
        6
    chenxytw  
       2018 年 4 月 24 日
    数组变量失效是什么?
    Junjunya
        7
    Junjunya  
       2018 年 4 月 24 日
    @jfcherng @wkan 楼上说的被识别成标签是什么鬼…… PHP 语言怎么会直接出现在浏览器端???

    在 PHP 中 这种写法完全正常,没有被识别成标签这一说,很大可能是本来他这个变量就有问题。
    我的测试结果和 3 楼一样 这样写完全没有问题。
    jfcherng
        8
    jfcherng  
       2018 年 4 月 24 日
    @Junjunya 那請你解釋一下為何還必須 "<和>同时存在会导致数组变量无法正确输出。" ?
    jfcherng
        9
    jfcherng  
       2018 年 4 月 24 日
    而且這個節點只能發 PHP-CLI 的問題麼?我覺得我的猜測十分合理。
    zgx030030
        10
    zgx030030  
       2018 年 4 月 24 日 via iPhone
    其实就是被浏览器当成一个节点标签了,语法本身并没错,你可以右键看看源代码。
    Junjunya
        11
    Junjunya  
       2018 年 4 月 24 日
    @jfcherng 突然反应过来了…… 确实很可能是被当成浏览器标签了 ,我的锅
    3IOhG7M0knRu5UlC
        12
    3IOhG7M0knRu5UlC  
       2018 年 4 月 24 日 via Android
    楼主不要拼字符串了,找黑啊
    bitlaoyuan
        13
    bitlaoyuan  
       2018 年 4 月 25 日
    日常黑。

    我写了 10 年 PHP 了,一直这么写都没出过错。
    moonsola
        14
    moonsola  
       2018 年 4 月 25 日
    echo "&lt;".$row_user_server_ip['server_name']."&gt;";
    mengzc
        15
    mengzc  
    OP
       2018 年 5 月 11 日
    @bitlaoyuan 可是我测试确实是失效了。
    mengzc
        16
    mengzc  
    OP
       2018 年 5 月 12 日
    完整代码:
    foreach ($user_server_ip as $key => $value) {
    $sqlserver = "SELECT `server_name`,`server_ip` FROM server WHERE `id` = ".$value.";";
    $results_user_server_ip = mysql_query($sqlserver);
    while ($row_user_server_ip = mysql_fetch_array($results_user_server_ip))
    {
    echo "[".$row_user_server_ip['server_name']."]";
    echo $row_user_server_ip['server_ip'];

    echo "<br>";
    }
    }

    第 6 行 原来的是:echo "<".$row_user_server_ip['server_name'].">"; 为了对输出的值外左右加一个<>,结果测试有问题。所以换成了[ ]后正常。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3442 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:11 · PVG 19:11 · LAX 03:11 · JFK 06:11
    ♥ Do have faith in what you're doing.