Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] include
Forum PHP.pl > Forum > PHP
El Wieczor
Czy dobrze rozumiem, że:

Kod
if (warunek)
  include(plik);


nie spowoduje odczytania pliku, jeśli warunek nie zajdzie?
Czy może jednak i tak wczyta cały tekst z pliku, dołączy do kodu i po prostu go nie wykona.

Mam dużo includów w kodzie i mało wydajnie by było, jeśli czytałby wszystkie pliki a i tak nic nie wykonywał.

Ale jeśli dobrze myślę, to include to zwykła funkcja, więc jeśli warunek nie zachodzi, to nawet nie bierze pod uwagę wykonania tej funkcji i dołączenia kodu.
kossa
Tak, dobrze myślisz, jeśi warunek się nie wykona to nie zostanie wczytany plik.

Łukasz
mdco
Jezeli warunek nie bedzie spelniony, to pominie wykonanie funkcji include.
sf
wczyta tylko te, które spełniają warunki

swoją drogą powinieneś pomyśleć nad czymś elegantrzym winksmiley.jpg bo co za dużo to nie zdrowo
El Wieczor
Cytat(sf @ 4.05.2007, 15:17:28 ) *
wczyta tylko te, które spełniają warunki

swoją drogą powinieneś pomyśleć nad czymś elegantrzym winksmiley.jpg bo co za dużo to nie zdrowo


W jakim sensie niezdrowo? Że kod zagmatwany, czy nie jest to najwydajniejszy sposób?
Ja mam 100 plików do includowania a za jednym wykonaniem skryptu jedynie kilka spełnia warunki.
Poza tym muszę includować, bo tak jeden plik php miałby 6000 linii kodu winksmiley.jpg

No chyba, że da się to zrobić jakoś inaczej, nie wiem, obiektowo, czy coś...
Ale jeśli chodzi tylko o spoób zapisu, to mi odpowiada i łapię się w tym na razie.


EDIT :::

Notatka: Począwszy od PHP 4.0.2, zachowanie instrukcji jest następujące: require() będzie zawsze próbować odczytać plik docelowy, nawet jeśli linia w której ona się znajduje nigdy nie zostanie wykonana. Instrukcja warunkowa nie wpływa na działanie require(). Jednakże, jeśli linia, w której pojawia się require() nie zostaje wykonana, zawartość pliku wczytywanego też nie zostaje wykonana. Podobnie, instrukcje pętli nie wpływają na działanie require(). Chociaż kod zawarty w pliku docelowy wciąż jest podmiotem pętli, require() działa tylko raz.

Cytat z manuala. Nie ma nic odnośnie include, ale to przecież to samo, tylko różnią się typem zwracanego błędu. I co Wy na to?
JaRoPHP
Cytat(El Wieczor @ 2.06.2007, 15:34:22 ) *
Cytat z manuala. Nie ma nic odnośnie include, ale to przecież to samo, tylko różnią się typem zwracanego błędu.
No nie do końca masz rację (manual):
Cytat
Instrukcje require() i include() są identyczne w każdym szczególe, z wyjątkiem obsługi błędów. W razie niepowodzenia, include() generuje ostrzeżenie (Warning), podczas gdy require() generuje błąd krytyczny (Fatal Error). Innymi słowy, instrukcji require() używa się do wczytywania plików, które są niezbędne do działania skryptu i w przypadku ich braku wykonywanie skryptu musi zostać przerwane. Instukcja include() nie zachowuje się w ten sposób. W jej przypadku, przy braku pliku wykonywanie skryptu będzie kontynuowane.

Jak widzisz funkcje różnią się nie typem zwracanego błędu (jak napisałeś), a obsługą błędu...
El Wieczor
No o to mi chodziło winksmiley.jpg

Ale z wykonaniem include i require jest w takim razie tak samo?
Kicok
Cytat
Instrukcje require() i include() są identyczne w każdym szczególe, z wyjątkiem obsługi błędów.


Wygląda na to, że tak.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.