Parece que este es el único ejemplo que surge cuando nos preguntamos si es posible crear nuevas operaciones. Personalmente creo que? = Sería bastante útil.
Dado que la creación de nuevos operadores implicaría la creación de su propia versión de PHP, y puede no ser muy útil para otros si decide empaquetar su código, puede crear fácilmente una función para emular el mismo efecto.
/**
* Global function to simplify the process of
* checking to see if a value equates to true
* and setting it to a new value if not.
*
* @param mixed $var the original variable to
* check and see if it equates to true/false
* @param mixed $default the default value to
* replace the variable if it equates to false
*
* @return mixed returns the variable for
* either further processing or assignment.
*/
function _d(&$var, $default) {
return $var = $var ?: $default;
}
A continuación, puede llamar a la función, asignarla a otra variable según sea necesario, o incluso anidan en las condiciones establecidas para asignar valores por defecto por una jerarquía de las variables.
_d($variable, 'default value');
// $variable = $variable ?: 'default value';
$variable1 = _d($variable, 'default value') . 's';
// $variable1 = ($variable = $variable ?: 'default value') . 's';
_d($variable, _d($variable1, 'default value'));
// $variable = $variable ?: ($variable1 = $variable1 ?: 'default value');
EDIT:
Como nota al margen, la función también le asignará el valor predeterminado para la variable incluso si aún no ha sido definida.
Puede crear una función similar o modificar la función anterior a la siguiente, si prefiere actualizar solo la variable si no está definida.
return $var = isset($var) ? $var : $default;}
Estoy bastante seguro de que tiene que preparar su propia versión de PHP para hacer eso. – GWW
Recuérdele que solo usted puede ejecutar código, que se basa en tales características personalizadas. Por lo general, no ganas nada, sino un grupo de personajes y quizás algunos clientes molestos;) Ponte en contacto con la lista de correo php-internals. Tal vez es algo bueno para el núcleo php. – KingCrunch
¿Hay algún lugar en el que podamos abrir una "petición" para llamar la atención? – dynamic