|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-05-15 23:23 UTC] piotrekz5 at wp dot pl
Description: ------------ Hi, Let's implement a new operator - '??' (used in c#). The ?? operator is called the null-coalescing operator and is used to define a default value. It returns the left-hand operand if the operand is not null; otherwise it returns the right operand. Test script: --------------- example: $var1 = null; $var2 = null; $var3 = $var1 ?? $var2; //$var3==null $var4 = $var1 ?? 'default1'; //$var4=='default1' $var5 = $var1 ?? $var2 ?? 'default2'; //$var5=='default2' $var6 = $var2 ?? $var3 ?? $var4 ?? 'default3'; //$var6=='default1' since the first non-null value is $var4=='default1' PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Nov 04 21:00:01 2025 UTC |
---- BEGIN CODE ---- function ifNull($var, $value, $null = NULL) { return ($var !== $null)? $var : $value; } ----- END CODE ----- Or even simpler to use and, unlike previous, working fine with undefined variables: ---- BEGIN CODE ---- function unNull(&$var, $value, $null = NULL) { if ($var === $null) { $var = $value; } return $var; } ----- END CODE ----- If we drop the last argument even multiple operands version can be achieved: ---- BEGIN CODE ---- function nonNull() { return array_reduce(func_get_args(), function(&$a, $e) { return ($a === NULL && $e !== NULL)? $e : $a; }); } ----- END CODE ----- Any reason to not do this in userland?