En realidad, si usted quiere para echar a un array y no tener que preocuparse por lo que puso en él, la respuesta es
$var = (is_object($var)) ? array($var) : (array) $var;
esto se comprueba con el siguiente código
function toArray($var) {
return (is_object($var)) ? array($var) : (array) $var;
}
$object = new stdClass;
$resource = fopen('php://stdout', 'w');
$closure = function() {};
$tests = array(
array(toArray(true), array(true), 'boolean true'),
array(toArray(false), array(false), 'boolean false'),
array(toArray(null), array(), 'null'),
array(toArray(1), array(1), 'positive integer'),
array(toArray(0), array(0), 'zero integer'),
array(toArray(-1), array(-1), 'negative integer'),
array(toArray(1.5), array(1.5), 'positive float'),
array(toArray(0.0), array(0.0), 'zero float'),
array(toArray(-1.5), array(-1.5), 'negative float'),
array(toArray(''), array(''), 'empty string'),
array(toArray('foo'), array('foo'), 'string'),
array(toArray(array()), array(), 'array'),
array(toArray($object), array($object), 'object'),
array(toArray($resource), array($resource), 'resource'),
array(toArray($closure), array($closure), 'closure'),
);
foreach ($tests as $test) {
ob_start();
var_dump($test[0]);
$a = ob_get_clean();
ob_start();
var_dump($test[1]);
$b = ob_get_clean();
assert($a === $b, "{$test[2]} is not the same");
}
esto resultados en php unexpected behavior. la forma correcta es array ($ arr) – Ulterior
La respuesta es correcta. El comentario de @Ulterior no es. Ejemplo: $ arr = null; var_dump ((array) $ arr, array ($ arr)); Devuelve: matriz (0) {} (correcta), luego matriz (1) {[0] => NULA} (incorrecta) También, con respecto a la respuesta correcta de cbroughton, tales conversiones son necesarias cuando la variable tiene que ser utilizado en un foreach(): si la variable no es una matriz (o iterable), habrá una advertencia de PHP. – FGM
FWIW: Creo que es importante encasillar Si alguna vez tiene una variable, está sujeta a una mutación seguida de una función que toma una matriz, p. 'foreach' o' implode'; de lo contrario, se encontrará con advertencias y errores no deseados. – GFargo