Witam Używam CakePHP i zastanawiam się czy kładziecie isset() lub! Empty() wokół wszystkich zmiennych w widokach? A może powinienem polegać na sprawdzaniu danych? Jakie byłoby proponowane rozwiązanie?isset() lub! Empty() funkcje we wszystkich zmiennych w widokach?
Odpowiedz
Myślę, że powinieneś znać różnice między isset
i empty
i korzystać z tego, który spełnia Twoje potrzeby.
empty
powróci FALSE
czy zmienna posiada niepusty i niezerową wartość.
następujące wartości uznaje się za pusty:
""
(ciąg pusty)0
(0 liczbą całkowitą)"0"
(0 w ciągu)NULL
FALSE
array()
(pusta tablica)var $var;
(zmienna zadeklarowana, ale bez wartości w klasie)
Z drugiej strony isset
powróci FALSE
jeśli zmienna nie istnieje lub został wyłączony z unset()
lub zmienna została ustawiona na NULL
.
Osobiście używam z przyzwyczajenia isset
, zanegowanie nie jest czymś, z czego często korzystam.
To dość szerokie pytanie. Zależy to od tego, czy można się spodziewać, że zmienna będzie zawsze obecna, czy też mogą istnieć przypadki, w których nie jest. Jeśli, zgodnie z twoją strukturą programu, pewna zmienna powinna być zawsze obecna w tym momencie programu, nie powinieneś sprawdzać jej istnienia. W ten sposób otrzymasz dobre ostrzeżenie, gdy coś zaskoczy i wiesz, że coś poszło nie tak. Jeśli, OTOH, oczekujesz, że zmienna jest czasami nieobecna, musisz sprawdzić w tym przypadku, by z wdziękiem złapać błąd, który w przeciwnym razie by powstał.
Ponadto wybór pomiędzy isset
i !empty
zależy od tego, czy masz na myśli „jest ustawiony i nie null
” lub „jest ustawiony i zawiera coś, co nie jest uważane false
”. To mała, ale czasami ważna różnica.
Aby odpowiedzieć na pytanie, nie.
- Jeśli wartość nie może być pusta w modelu, to nie.
- Jeśli chodzi o błędy i puste miejsca, to lepiej przekierować, aby dodać strony, a 404 nie znajdzie.
- Kiedy używam go w widoku, zwykle jest na wysokim poziomie, więc nie muszę pisać zbyt często.
3 obejmuje często wymaga starannego zaprojektowania modelu. W związku z tym używanie Isset i! Empty jest o wymówką, aby nie pracować na tych modelach.
- Przedmioty, które są opcjonalne, zdają się często występować w relacjach jeden do wielu, ponieważ pętle foreach są bardziej skuteczne niż sprawdzanie każdej wartości.
gdy jest to wybór między to czy tamto
gdy nie jest jest ustawiona, to jest pusta < => gdy nie jest pusta, jest ona ustawiona
ale kiedy go jest ustawiony, to może być pusty ... An nie może ..........
więc jest to differnece
Kiedy robisz coś podobnego $this->set(compact('posts', 'tags', 'categories'));
ze sterownika, tylko zmienne, które nie są null
, są wysyłane do widoku. Więc jeśli wcześniej zrobiłeś $categories = $this->Categories->find('all', ...);
i nie zwrócił żadnych wyników, to $categories
nie będzie istnieć w twoim widoku. Tak, aby odpowiedzieć na pytanie, w widoku, po prostu zrobić:
<?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; ?>
Puste wartości również nie jest równoznaczny z prawdą, więc można robić takie rzeczy jak:
<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>
W skrócie I tylko wykorzystać isset()
, aby uniknąć błędów dotyczących ustawiania zmiennych.
Ja rzadko używam empty()
i udało mi się bez problemu w innych językach programowania.
- 1. Jaka jest różnica między isset i empty?
- 2. jak zrobić zmienną widoczną we wszystkich widokach - tory
- 3. Jaka jest różnica między "isset()" i "! Empty()" w PHP?
- 4. isset i! Empty nie przechodzą przez czek dla przesłanych plików
- 5. Znajdowanie nieużywanych zmiennych w widokach CakePHP
- 6. deklarowanie prostych zmiennych w widokach w Laravel
- 7. isset PHP isset ($ _ GET ["coś"])? $ _GET ['something']: ''
- 8. grep we wszystkich katalogach
- 9. PHP: if! Empty & empty
- 10. Jaki jest sposób udostępnienia menu rozwijanego do użycia we wszystkich widokach?
- 11. Python: Czytanie wszystkich plików we wszystkich katalogach
- 12. RoR udostępnia zmienną dla application.html.erb, więc jest we wszystkich widokach nagłówka
- 13. Znajdź typy we wszystkich złożeniach
- 14. Jak przechwycić renderowanie widoku, aby dodać HTML/JS we wszystkich widokach częściowych?
- 15. Proste PHP isset Test
- 16. Potrzebujesz shebang we wszystkich skryptach basha?
- 17. Nielegalne przesunięcia wpisz isset lub pusty w linii EntityChoiceList.php 273
- 18. Funkcje szyderstwa w widokach opartych na klasach Django
- 19. Błąd wyrażeń Isset
- 20. Ciągłe, zapętlone, przewijane treści we wszystkich kierunkach
- 21. Szyny Zmienna we wszystkich działaniach kontrolera
- 22. Zastąp ciąg we wszystkich plikach w Eclipse
- 23. edytuj plik we wszystkich zatwierdzeniach w git
- 24. isset w jQuery?
- 25. Funkcje zmiennych z przestrzeniami nazw w PHP
- 26. Wykrywanie wszystkich zmiennych globalnych w funkcji Pythona?
- 27. ! Empty (przycinanie ($ _ POST ['username']
- 28. Konwersja z małych na wielkie wszystkie wartości we wszystkich zmiennych znaków w ramce danych
- 29. Drukowanie wszystkich zmiennych środowiskowych w C/C++
- 30. Zmienne klas w widokach szyn?
Całkowicie się z Tobą zgadzam z błędem przy złapaniu – ariefbayu