PHP 附加到空字符串而不出错

问题描述 投票:0回答:6

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

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

当然如果我提前定义了字符串,比如$string = NULL,就不会出现错误,但是 但我认为也许有一种方法可以附加到字符串,而不需要提前定义变量/进行 !empty 检查。

它应该只是一行代码,我正在寻找一个精简的代码。

谢谢。

php string append
6个回答
4
投票

精简代码和消除所有通知级别的错误通常不会齐头并进。如您所知,错误与使用未初始化的变量有关。如果不初始化它就无法初始化它。

不过,我不会考虑

$string = '';
膨胀。


4
投票

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

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

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


2
投票

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

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

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

1
投票

它应该仍然有效,只是口译员向您发出警告。如果你愿意的话,你可以在 php 中抑制警告:

error_reporting(E_NONE);

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


1
投票

如果您确实想在一行上完成所有操作,只需先检查变量即可。如果变量为 null,则会为其赋值,如果变量不为 null,则会追加到该变量上。

$more = "This is more text";

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

0
投票

为了避免有关未定义变量的通知:

@$var .= 'some string';
© www.soinside.com 2019 - 2024. All rights reserved.