Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcje, składnia itd
Diablos
post 18.06.2005, 22:23:12
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


chciałbym aby ktos mi wytłumaczył jak wyglada składnia funkcji, gdzie co sie zamieszcza

chodzi mi o wyjasnienie mniej wiecej takie:

(przykład zrobie na Turbo Pascalu 7.0)


Kod
FUNCTION jakas;   // nazwa funkcji
var x,y,s:real;   // deklaracja zmiennych

BEGIN   // poczatek kodu wlasicwego funkcji
writeln('podaj x:');     /
readln(x)                  /
writeln('podaj y');      /  to co funkcja robi gdy sie ja wywoła
readln(y);                /
s:=x+y;                   /
writeln(s);                /
END; //koniec kodu


wywołanie funkcji nstepnie:

Kod
IF z > '1' THEN
jakas;
ELSE
...


o podobny opis prosze funkcji w php
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
dr_bonzo
post 18.06.2005, 22:28:46
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


http://pl.php.net/manual/pl/functions.php

Polecam, bardzo ciekawa (I OBOWIAZKOWA) lekturka...


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Spirit86
post 18.06.2005, 23:11:28
Post #3





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Kod
FUNCTION jakas;   // nazwa funkcji
($A, $B, $C,...)   //  zmienne
{   // poczatek kodu wlasicwego funkcji
echo 'Welcome World';
}//koniec kodu


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
NuLL
post 19.06.2005, 00:08:49
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


  1. <?php
  2.  
  3. function jakas($A, $B, $C)
  4. {
  5. echo 'Welcome World';
  6. }
  7.  
  8. ?>


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
hwao
post 19.06.2005, 09:55:07
Post #5


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Ostanio sie troche nudziłem i zaczołem pisac kurs dot. klas z PHP5, ale widzac Twojego posta naszla mnie ochota na napisanie troche o funkcjach smile.gif

Nie jestem humanista wiec odrazu przepraszam za sposbo przedstawinia tego smile.gif moze da sie cos z tego nauczyc - prosze o refleksje.


Dobra to może mały kurs.

Jak zapewne wiesz, w php istniej możliwość własnego definiowania funkcji, co daje nam taka możliwość? Początkującym może się to wydawać bez użyteczne aczkolwiek zyskujemy ogromnie pole manewru. Najczęściej są one używane, aby zastąpić jakiś powtarzający się fragment kodu, bądź też do realizacji jakiejś prostej lub skomplikowanej operacji.
Zatem jak się definiuje funkcje? Składnia jest dosyć prosta mianowicie, na początku używamy słowa kluczowego function po którym występują ciąg znaków oznaczający nazwę funkcji po niej zaś nawiasy () w których umieszczamy argumenty (o ile są nam potrzebne), po tych operacjach należy dać ciało funkcji, które otwiera się znakiem { a kończy } – to będzie ciało naszej funkcji, w niej będziemy dawać procedury, jakie ma wykonać dana funkcja. Przykładem prostej funkcji z jej wykorzystaniem będzie taki prosty kod:
  1. <?php
  2. // Zdefiniujemy sobie funkcje
  3. function helloWorld() // Następuje definicja funkcji
  4. {  // Otwarcie ciała funkcji
  5. // Tutaj umieszczamy procedury, które zostaną
  6. // wykonane podczas uruchomienia funkcji
  7. echo 'Funkcja helloWorld została uruchomiona'; // np. wyświetli napis
  8. }  // Zamykamy ciało funckji
  9.  
  10. // użycie
  11. helloWorld();
  12. ?>

Przykład, który jest przedstawiony powyżej wyświetli nam tekst ‘Funkcja helloWorld została uruchomiona’. Wszystko ładnie, ale… zastosowaniem dla takiej funkcji może być na przykład wyświetlanie jakiegoś kodu, co wystaje zawsze (np. w stronie można użyć tego do wyświetlania jakiś fragmentów strony, często używa się czegoś takiego do wyświetlenia wszystkie aż do fragmentu <body> w html’u), pewnie już umiesz napisać taka funkcję, więc spróbuj stworzyć funkcję, której rezultatem będzie:
  1. <head>
  2. <title>php</title>
  3. </head>
  4. <body>

Myślę, że sobie z tym poradziłeś, ale na wszelki wypadek napisze jak to może wyglądać
  1. <?php
  2. function startStrony() {
  3. $eol = &#092;"n\"; // Znak enter’a
  4. echo '<html>'.$eol;
  5. echo ' <head>'.$eol;
  6. echo ' <title>php</title>'.$eol;
  7. echo ' </head>'.$eol.'<body>'.$eol;
  8. }
  9.  
  10. startStrony();
  11. echo 'Strona używa php';
  12. echo ' </body>'.&#092;"n\";
  13. echo '</html>'.&#092;"n\";
  14. ?>

Rezultatem będzie wysłanie do przeglądarki dokumentu html.

Zajmijmy się teraz możliwością wprowadzenia argumentów do funkcji, jak już wcześniej pisałem będziemy wprowadzać pomiędzy () przy definiowaniu funkcji (funkcja będzie wymagać tych parametrów) jak i przy wykonywaniu funkcji (do funkcji będą wysyłane te parametry z zewnątrz). Napiszemy prosta funkcję podnosząca dana liczbę do kwadratu, ale wyświetlenie jej raczej nie wchodzi w rachubę, bardziej by nam się przydała jako zmienna. Do takich właśnie celów powstało return, które zastosowane w funkcji zwraca nam wartość, i jednocześnie zatrzymuje wykonywanie funkcji (kiedy nastąpi wykonanie tej operacji wszystko po return zostaje nie wykonane). Jak już wiemy jak zwracać dane z funkcji to nadszedł czas aby omówić jak prowadzać do niej argumenty. Mianowicie podczas definicji wszystko wygląda tak samo z ta drobna różnica że pomiędzy () umieszczamy (tak jakbyśmy definiowali zmienne) zmienne oddzielone przecinkami (przecinki tylko wtedy kiedy potrzebna jest nam jeszcze jedna zmienna). W praktyce wygląda to tak (oczywiście dajemy to miedzy () ) $zmienna, $zmienna2, $zmienna3 a jak potrzebujmy tylko jednej to nie umieszczamy przecinka (przecinek tylko rozdziela nam funkcje znajdujące się obok siebie, jak jest jedna analogicznym jest to że go nie potrzeba). Dosyć dużo tutaj teorii, ale myślę że to odpowiednie miejsce na wspomnienie o jeszcze jednej przydatnej możliwości, mianowicie jeżeli definiujemy jakaś funkcję i wiemy że któregoś z argumentów można nie prowadzać możemy mu przypisać domyśla wartość (dzięki temu php nie pokażę nam błędu i zmienna będzie mieć wartość). Robi się to w następujący sposób $zmienna = 1 oczywiście można to stosować na dowolnej pozycji (czyli nie ważne czy to pierwszy argument czy 2), ta wartość jest przypisana dopiero wtedy kiedy uruchamiając funkcję ten argument zostanie pominiemy( mimo ze funkcja będzie wymagać 2 argumentów my wpiszemy tylko 1, wtedy 2 argumentowi zostanie przypisana wartość domyśla – wcześniej zdefiniowana przy funkcji). Może to już troszkę dużo, ale jakbyś nie zrozumiał tego to proszę przeczytaj jeszcze raz i spróbuj napisać jakieś funkcje z wykorzystaniem tego samemu (po testuj). Wracam do naszego przykładu z podniesieniem do kwadratu:
  1. <?php
  2. // Definiujemy funkcję kwadrat
  3. function kwadrat( $liczba = 0 )  // Funkcja wymaga jednego argumentu
  4. // jeżeli nie zostanie on podany to funkcja przyznaje zmiennej wartość 0
  5. {  // Otwieramy ciało funkcji
  6. $kwadrat = $liczba*$liczba;  // podnosimy liczbę do kwadratu
  7. return $kwadrat;  // Zwracamy wynik funkcji
  8. } // Zamykamy ciało funkcji
  9.  
  10. // Przykład uzycia
  11. $liczba = 2;
  12. $wynik = kwadrat( $liczba ); // ponieważ funkcja zwraca wartość to
  13. // to przypisujemy ją zmiennej $wynik
  14. echo $wynik; // Rezultatem powinna być 4
  15.  
  16. // Przykład nie podania argumentu
  17. echo kwadrat(); // Wynikiem będzie 0 ponieważ
  18. // nie podaliśmy argumentu więc został
  19. // użyty domyślny czyli 0 a zero do
  20. // kwadratu to 0
  21. ?>


To chyba na razie tyle z podstaw co mi przychodzi do głowy, potem rozszerzę trochę kurs.



To by było na tyle...
Aaa i prosze jeżeli ktos chce gdzies wykozystywac ten tekst to prosze się skonsultowac zemna, bez pozwolenia nie pozwalam na rozpowszechnianie tego tekstu poza obszar php.pl.

Pozdrawiam

--- edit ---
Opups zapomnialem wpomniec o zasiegu zmiennych, potem to dopisze.
Go to the top of the page
+Quote Post
Diablos
post 19.06.2005, 11:10:31
Post #6





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


Nom, wszystko spokojnie zrozuzmiałem za pierwszym razem. Przykład z kwadratem wiele mi rozjasnił aarambo.gif

Poki co rozumiem wszystko, ale bede musiał nauczyc sie uzwac tego w praktyce cool.gif

Czekam na dalsze częsci kursu smile.gif

PS. mowisz, że nie jestes humanistą, ale tak naprawde to bardzo dobrze, wiekszosc programistów to umysły ścisłe wiec pisanie na chłopski rozum to najlepsze rozwiazanie.

EDIT:

zauwazylem ze niektore funkcje maja okreslone zmienne: globals ... mógłby ktos bardziej wytłumaczyc do czego to słuzy ?

Ten post edytował Diablos 8.07.2005, 19:15:56
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: 14.08.2025 - 12:13