Does anyone know of any issues, performance or other, that can occur by casting a variable to an array instead checking it first?
// $v could be a array or string
$v = array('1','2','3');
OR
$v = '1';
instead of:
if (is_array($v)) foreach ($v as $value) {/* do this */} else {/* do this */}
I’ve started to use:
foreach((array) $v as $value) {
// do this
}
It stops the repetition of code quite a bit – but performance is on my mind, not ugly code.
Also, does anyone know how php handles casting an array to an array? No errors are thrown but does the php engine check if it’s a array, then return a result before doing the cast process?
First: Premature optimization is the root of all evil. Never let performance influence your coding style!
Casting to an array allows to some nice tricks, when you need an array, but want to allow a single value
Note, that this may lead to some unwanted (or wanted, but different) behaviours
However, this one
allows you to decide what should happen for every single type, that can occur. This isn’t possible, if you cast it “blindly” to an array.
In short: Just choose the one, that better fits the needs of the situation.