I enjoy using short circuit evaluation in javascript. Since I work with a legacy php personal project, I would like to write simpler, terser and easier code in php as well. So what is the equivalent of js short circuit expressions in php?
For example, in js you can write:
const complexEvaluated = someEvaluation() && false // false
const finalCount = complexEvaluated || 0 // zero
It's great to be able to quickly create fallbacks and immediately and visibly ensure that a variable has a value.
In php, short circuit fallthrough doesn't work exactly the same way:
<?php
$complexEvaluated = someEvaluation() || 7; // boolean true
$finalCount = countUp() || 0; // boolean true
Instead it is necessary to use null coalescing, usually:
<?php
$complexEvaluated = someEvaluation() ?? 7; // 7
$complexEvaluated = someEvaluationToFalseOrZero() ?: 44; // 44
$finalCount = countUp() ?? 0; // 0
And you essentially have to use a different operator for falsy outcomes vs null outcomes, the short ternary ?:
vs the null coallescing operator ??
In another post I will cover the equivalent of js destructuring in php, or as close as you can get (spoiler: It's useful, but not as useful as js destructuring).
Top comments (0)