Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] include
El Wieczor
post 4.05.2007, 13:57:43
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
kossa
post 4.05.2007, 14:17:07
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 4.05.2007, 14:17:19
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.


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
sf
post 4.05.2007, 14:17:28
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 winksmiley.jpg bo co za dużo to nie zdrowo


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
El Wieczor
post 2.06.2007, 16:34:22
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 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?

Ten post edytował El Wieczor 2.06.2007, 16:35:16
Go to the top of the page
+Quote Post
JaRoPHP
post 2.06.2007, 19:53:11
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...


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
El Wieczor
post 3.06.2007, 12:01:06
Post #7





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

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


No o to mi chodziło 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 3.06.2007, 16:53:38
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.


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 16:56