Hola, estoy usando CakePHP y me pregunto si ustedes ponen isset() o! Empty() alrededor de todas sus variables en las vistas. ¿O debería depender de la validación de datos? ¿Cuál sería la solución sugerida?isset() o! Empty() funciones en todas las variables en sus puntos de vista?
Respuesta
Creo que deberías conocer las diferencias entre isset
y empty
y usar la que satisfaga tus necesidades.
empty
volverá FALSE
si la variable tiene un no vacío y valor distinto de cero.
los siguientes valores son considerados como vacío:
""
(una cadena vacía)0
(0 como un entero)"0"
(0 como una cadena)NULL
FALSE
array()
(una matriz vacía)var $var;
(una variable declarada, pero sin un valor en una clase)
Por otro lado isset
volverá FALSE
si la variable no existe o ha sido desactivada con unset()
, o la variable se ha establecido en NULL
.
Personalmente, uso isset
por hábito, negar no es algo que use mucho.
Esa es una pregunta bastante amplia. Depende de si puede esperar que la variable esté siempre presente o si puede haber casos en los que no lo es. Si, de acuerdo con la estructura de su programa, una cierta variable siempre debe estar presente en este punto del programa, no debe verificar su existencia. De esta forma recibirás una agradable advertencia cuando algo se arruine y sepas que algo salió mal. Si, OTOH, esperas que la variable a veces esté ausente, debes verificar que este caso capte con gracia el error que de otro modo resultaría.
Por otra parte, la elección entre isset
y !empty
depende de si quieres decir "está establecido y no null
" o "se establece y contiene algo que no está considerado false
". Esa es una diferencia pequeña pero a veces importante.
Para responder a la pregunta, no.
- Si el valor no puede ser nulo en el modelo, entonces no es así.
- Si se trata de errores y conjuntos vacíos, entonces es mejor redirigir para agregar páginas y 404 no fundadores.
- Cuando lo uso en una vista, generalmente es de alto nivel, por lo que no tengo que escribir muy a menudo.
3 implica a menudo implica un diseño cuidadoso de su modelo. ASÍ QUE usar Isset y! Empty es excusa para no trabajar en esos modelos.
- Los elementos que son opcionales, a menudo también aparecen en una o varias relaciones, ya que esos bucles foreach son más efectivos que la comprobación de cada valor.
cuando se trata de una elección entre uno u otro
cuando no se está establecido, está vacío < => cuando no está vacía, se establece
pero cuando se se establece, puede estar vacío ... una no puede ..........
por lo que este es el differnece
Cuando haces algo como $this->set(compact('posts', 'tags', 'categories'));
desde el controlador, solo las variables que no son null
se envían a la vista. Entonces, si anteriormente había hecho $categories = $this->Categories->find('all', ...);
y no devolvió resultados, entonces $categories
no existirá en su vista. Así que para responder a su pregunta, en la vista, yo simplemente hago: valores
<?php if (isset($categories)): ?>
<ul>
<?php foreach ($categories as $category): ?>
<li>{output category information here}</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p>No categories</p>
<?php endif; ?>
vacíos también no equivalen a cierto, por lo que puede hacer cosas como:
<dl>
<dt>Title</dt>
<dd><?php echo $category['Category']['title']; ?></dd>
<dt>Description</dt>
<dd>
<?php if ($category['Category']['description']): ?>
<?php echo $category['Category']['description']; ?>
<?php else; ?>
None
<?php endif; ?>
</dd>
</dl>
En resumen yo sólo uso isset()
para evitar errores sobre variables no configuradas.
Raramente utilizo empty()
y me las arreglé muy bien sin otros lenguajes de programación.
- 1. eliminar todas las variables, excepto las funciones
- 2. ¿Por qué comprobar tanto isset() como? Empty()
- 3. ¿Listar todas las funciones integradas en javascript?
- 4. Haciendo todas las variables globales
- 5. ¿Por qué isset() y empty() usan el mismo opcode?
- 6. ¿Cuál es la diferencia entre isset y empty?
- 7. Obtener un diccionario de todas las variables actualmente en su alcance y sus valores
- 8. ¿Cómo obtener todas las variables disponibles en una vista en PHP?
- 9. ¿Cómo enumerar todas las variables de entorno en Vim?
- 10. ¿Necesito restaurar todas las variables onResume?
- 11. Visualización de todas las variables definidas
- 12. Imprimir todas las variables globales/variables locales?
- 13. if! Isset O condiciones O
- 14. ¿Es posible deshabilitar todas las funciones de desplazamiento y acercamiento en una vista web de Android?
- 15. ¿Cómo imprimir todas las variables definidas en emacs?
- 16. ¿Cómo puedo console.log funciones junto con todas sus propiedades?
- 17. acceso todas las variables locales
- 18. Evaluar funciones en varios puntos
- 19. ¿Utiliza artículos en sus nombres de variables?
- 20. Imprimir todas las variables de entorno en C/C++
- 21. ¿Es posible generar alguna o todas las variables disponibles en un archivo .htaccess?
- 22. Cargue todas las funciones en PowerShell desde un directorio determinado
- 23. Encontrar todas las funciones en el área de trabajo actual
- 24. Objeto PHP isset y/o vacío
- 25. Obtener todas las variables env en C \ C++ en Windows
- 26. encontrar todas las funciones (incluyendo privado) en un paquete
- 27. Obtener todas las funciones de un objeto en JavaScript
- 28. ¿Cómo enumerar todas las funciones en un módulo de Python?
- 29. ¿Obtener todas las variables de Javascript?
- 30. ¿Debo declarar todas las funciones virtuales en una clase base?
Estoy totalmente de acuerdo con usted con gracia atrapar el error – ariefbayu