Edit report at https://bugs.php.net/bug.php?id=62043&edit=1
ID: 62043 Comment by: phpmpan at mpan dot pl Reported by: piotrekz5 at wp dot pl Summary: new operator Status: Open Type: Feature/Change Request Package: PHP options/info functions Operating System: any PHP Version: Irrelevant Block user comment: N Private report: N New Comment: ---- 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? Previous Comments: ------------------------------------------------------------------------ [2012-05-15 23:23:20] 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' ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62043&edit=1