我遇到了以下问题,我的函数将代码附加到字符串$ string($ string。= bla),但在开头字符串为空,所以我收到此错误消息
遇到PHP错误 严重性:通知
消息:未定义的变量:$ string
文件名:libraries / file.php
行号:90
当然如果我提前定义字符串,比如$ string = NULL,则不会发生错误,但是 但我可能有一种方法可以附加到一个字符串,而无需事先定义变量/进行!空检查。
它应该只是一个单行的东西,我正在寻找一个苗条的代码。
感谢。
答案 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);