代码之家  ›  专栏  ›  技术社区  ›  Lukas Oppermann

php追加到空字符串,无错误

  •  1
  • Lukas Oppermann  · 技术社区  · 14 年前

    我有以下问题,我的函数将代码附加到一个字符串$string($string.=bla),但在开始时,该字符串是空的,所以我得到了这个错误消息

    遇到了一个PHP错误
    严重性:通知
    消息:未定义的变量:$string
    文件名:libraries/file.php
    行号:90

    当然,如果我提前定义字符串,如$string=null,则不会发生错误,但是 但是我想也许有一种方法可以附加到一个字符串,而不需要预先定义变量/有一个!空支票。

    它应该只是一行东西,我正在寻找一个纤细的代码。

    谢谢。

    5 回复  |  直到 6 年前
        1
  •  4
  •   jasonbar    14 年前

    精简代码并消除所有通知级别的错误通常不会同时发生。如您所知,错误是关于使用未初始化的变量。如果没有..初始化,就无法初始化它。

    我不会考虑 $string = ''; 然而,膨胀。

        2
  •  3
  •   m10    6 年前

    这不是一个巨大的进步 isset() 但是你可能喜欢 Null-Coalescing-Operator

    $var = ($var?? '') . 'some string'; 
    

    表达式(expr1)??(expr2)如果expr1为空,则计算为expr2,否则计算为expr1。

        3
  •  2
  •   Chris    14 年前

    第一次使用变量时,只需执行“=”而不是“.=”

    $newVar = ""; //good
    $newVar2 .= ""; //bad 
    
    $newVar .= ""; //ok because of good line 
    
        4
  •  1
  •   Ultimate Gobblement    14 年前

    它仍然可以工作,只是翻译给你一个警告。如果您想使用以下命令,可以在php中取消警告:

    error_reporting(E_NONE);
    

    也就是说,首先声明变量并在测试时启用警告通常是一个好的实践。

        5
  •  0
  •   Jack Thomson    6 年前

    如果您真的想在一行中完成所有的操作,只需首先检查变量。如果变量为空,它将分配它,如果不是空,它将追加到它。

    $more = "This is more text";
    
    $string = (($string == null) ? $more : $string . $more);