PHP无错误地附加到空字符串

时间:2010-08-18 18:29:51

标签: php string append

我遇到了以下问题,我的函数将代码附加到字符串$ string($ string。= bla),但在开头字符串为空,所以我收到此错误消息

  

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

当然如果我提前定义字符串,比如$ string = NULL,则不会发生错误,但是 但我可能有一种方法可以附加到一个字符串,而无需事先定义变量/进行!空检查。

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

感谢。

5 个答案:

答案 0 :(得分:4)

超薄代码和删除所有通知级错误通常不是齐头并进的。如您所知,错误是关于使用未初始化的变量。如果没有......初始化它就无法初始化它。

但我不会考虑$string = '';臃肿。

答案 1 :(得分:3)

这不是isset()的巨大改进,但您可能会喜欢Null-Coalescing-Operator

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

表达式(expr1)??如果expr1为NULL,则(expr2)求值为expr2,否则求值为expr1。

答案 2 :(得分:2)

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

$newVar = ""; //good
$newVar2 .= ""; //bad 

$newVar .= ""; //ok because of good line 

答案 3 :(得分:1)

它应该仍然有用,它只是解释器给你一个警告。如果需要,可以在php中禁止警告:

error_reporting(E_NONE);

尽管如此,它通常是首先声明变量的好习惯,并且在测试时会启用警告。

答案 4 :(得分:0)

如果您真的想在一行上完成所有操作,请先检查变量。如果变量为null,它将分配它,如果它不为null,它将附加到它。

$more = "This is more text";

$string = (($string == null) ? $more : $string . $more);