Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] include
El Wieczor
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.05.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Tak, dobrze myślisz, jeśi warunek się nie wykona to nie zostanie wczytany plik.

Łukasz
Go to the top of the page
+Quote Post
mdco
post
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


Jezeli warunek nie bedzie spelniony, to pominie wykonanie funkcji include.
Go to the top of the page
+Quote Post
sf
post
Post #4





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


wczyta tylko te, które spełniają warunki

swoją drogą powinieneś pomyśleć nad czymś elegantrzym (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) bo co za dużo to nie zdrowo
Go to the top of the page
+Quote Post
El Wieczor
post
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.05.2007

Ostrzeżenie: (0%)
-----


Cytat(sf @ 4.05.2007, 15:17:28 ) *
wczyta tylko te, które spełniają warunki

swoją drogą powinieneś pomyśleć nad czymś elegantrzym (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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?

Ten post edytował El Wieczor 2.06.2007, 16:35:16
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #6





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
El Wieczor
post
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 4.05.2007

Ostrzeżenie: (0%)
-----


No o to mi chodziło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ale z wykonaniem include i require jest w takim razie tak samo?
Go to the top of the page
+Quote Post
Kicok
post
Post #8





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:42