可以用php将null转换为string吗?比如说,
null
string
$string = null;
字符串到
$string = "null";
型
ie3xauqp1#
在PHP 7中,您可以使用??合并操作符
??
$string = $string ?? 'null';
字符串从7.4开始,你可以使用??=合并赋值运算符
??=
$string ??= 'null';
型请注意,如果$string不存在,它将隐藏错误消息。因此,最好使用is_null()显式测试变量:
$string
is_null()
$string = null; $string = is_null($string) ? 'null' : $string; var_dump($string); // string(4) "null" $string = 'string'; $string = is_null($string) ? 'null' : $string; var_dump($string); // string(6) "string" $string = null; $string = is_null($s) ? 'null' : $string; var_dump($string); // Warning: Undefined variable $s
klsxnrf12#
我是不是漏掉了什么?
if ($string === null) { $string = 'null'; }
字符串我在想短一点的。也可以使用a ternary operator:
$string = is_null($string) ? 'null' : $string;
型你的电话
4ktjp1zp3#
var_export可以表示可解析字符串中的任何变量。
rqqzpn5f4#
if ($string === null) { $string = "null"; }
字符串
tnkciper5#
在狭义的上下文中,变量仅为null,字符串/单词“null”需要作为打印/可见文本,使用null合并运算符,三元语句或相对冗长的if并没有什么丑陋/不直观的地方。如果您将值连接到另一个字符串,请确保使用括号封装逻辑。相反地,对无条件的null值使用本机函数调用:
if
NULL
var_dump()
下面是一组候选解和它们在输入null时的输出:(Demo)
$null = null; echo 'var_export(): ' . var_export($null, true); echo "\n"; echo 'var_dump(): ' . (function($v){ ob_start(); var_dump($v); return ob_get_clean(); })($null); //echo "\n"; echo 'print_r(): ' . print_r($null, true); echo "\n"; echo 'json_encode(): ' . json_encode($null); echo "\n"; echo 'serialize(): ' . serialize($null); echo "\n"; echo 'strval(): ' . strval($null); echo "\n"; echo 'gettype(): ' . gettype($null); echo "\n"; echo 'null coalesce: ' . ($null ?? 'null'); echo "\n"; echo 'ternary: ' . ($null === null ? 'null' : $null); echo "\n"; echo 'condition: ' . (function($v) { if ($v === null) { return 'null'; }})($null);
字符串输出量:
var_export(): NULL var_dump(): NULL print_r(): json_encode(): null serialize(): N; strval(): gettype(): NULL null coalesce: null ternary: null condition: null
型作为问题范围的扩展,使用本机函数将非字符串类型的数据转换为可打印的文本:
json_encode()
最后,我的建议是使用空合并操作符(因为它直观/自文档化,简洁,并且性能最高),除非你有令人信服的理由不这样做。
o8x7eapl6#
它有最佳解决方案:
$var = null; $stringNull = json_encode($var);
字符串你可以测试它,
$var = null; $stringNull = json_encode($var); $null = json_decode($stringNull, true); var_dump($stringNull); var_dump($null);
6条答案
按热度按时间ie3xauqp1#
在PHP 7中,您可以使用
??
合并操作符字符串
从7.4开始,你可以使用
??=
合并赋值运算符型
请注意,如果
$string
不存在,它将隐藏错误消息。因此,最好使用is_null()
显式测试变量:型
klsxnrf12#
我是不是漏掉了什么?
字符串
我在想短一点的。
也可以使用a ternary operator:
型
你的电话
4ktjp1zp3#
var_export可以表示可解析字符串中的任何变量。
rqqzpn5f4#
字符串
tnkciper5#
在狭义的上下文中,变量仅为
null
,字符串/单词“null”需要作为打印/可见文本,使用null合并运算符,三元语句或相对冗长的if
并没有什么丑陋/不直观的地方。如果您将值连接到另一个字符串,请确保使用括号封装逻辑。相反地,对无条件的
null
值使用本机函数调用:NULL
还是null
,var_dump()
的情况下,一个新行被附加到打印的值。下面是一组候选解和它们在输入
null
时的输出:(Demo)字符串
输出量:
型
作为问题范围的扩展,使用本机函数将非字符串类型的数据转换为可打印的文本:
json_encode()
,最后,我的建议是使用空合并操作符(因为它直观/自文档化,简洁,并且性能最高),除非你有令人信服的理由不这样做。
o8x7eapl6#
它有最佳解决方案:
字符串
你可以测试它,
型