Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Tworzenie funkcji...
Volume
post 7.01.2010, 19:45:03
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


Mam taki przypadek ze pare razy w skrypcie musze powtorzyc pewne funkcje i chcialem sobie uproscic sprawe tworzac funkcje, ale widze ze tak to nie dziala bo nie ma efektow:/

  1. function tekst($z)
  2. {
  3. $z=substr($z, 0, 20); // max dlugosc ciagu
  4. $z=wordwrap($z, 3, " ", true); // max dlugosc jednego slowa
  5. // itp.
  6. }
  7.  
  8. $tresc='Jakas tresc ';
  9. tekst($tresc);
  10. echo $tresc;

Brakuje mi pomysłu jakby to zrobić aby zadziałało....

Ten post edytował Volume 7.01.2010, 20:01:36
Go to the top of the page
+Quote Post
magnus
post 7.01.2010, 19:47:39
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 15.11.2007
Skąd: Nowogród Bobrz.

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


A o czymś takim jak 'return' słyszał? smile.gif


--------------------
Efemental.pl - nasz punkt słyszenia :: recenzje :: tylko metal!
Opensource'owy klon Cantra: http://github.com/magnax/Simtr
Go to the top of the page
+Quote Post
Kamil Pietrzak
post 7.01.2010, 19:57:04
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 10
Dołączył: 7.01.2010
Skąd: Lublin

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


a nie
$tresc = tekst($tresc); zamiast teksti($tresc); ?
ale to tak poza tematem
a tak poza tematem to powiem Ci... ^^ lepiej dac od razu echo tekst($tresc);

mozesz to dac z return
lub zrobic funkcje ktora od razu wyswietla

function hehe($hihi) {
echo $hihi;
}

hehe('bla bla bla');
Go to the top of the page
+Quote Post
Wicepsik
post 7.01.2010, 20:04:28
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


http://php.net/manual/en/language.functions.php


--------------------
Go to the top of the page
+Quote Post
Volume
post 7.01.2010, 20:13:42
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


No tak wyswietlilem efekt juz wew tej funkcji, to chyba najlepszy soposob.
  1. <?php
  2. function tekst($zt)
  3. {
  4. $zt=substr($zt, 0, 20); // max dlugosc ciagu
  5. $zt=wordwrap($zt, 3, " ", true); // max dlugosc jednego slowa
  6. echo $zt;
  7. }
  8.  
  9. $tresc='Jakas tresc aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
  10. tekst($tresc);
  11. ?>


A o return slyszalem ale tylko z jednej funkcji wewnatrz tej mojej tekst() udawalo mi sie wyswietlic.

  1. <?php
  2. function tekst($zt)
  3. {
  4. return substr($zt, 0, 20); // max dlugosc ciagu
  5. return wordwrap($zt, 3, " ", true); // max dlugosc jednego slowa
  6.  
  7. }
  8.  
  9. $tresc='Jakas tresc aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
  10. $tresc=tekst($tresc);
  11. ?>
Go to the top of the page
+Quote Post
thek
post 7.01.2010, 21:20:00
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Bo funkcja kończy się zaraz po pierwszym return. Można to porównać do break w pętlach. Po napotkaniu go wyskakujesz z pętli i to samo jest z return. Jeśli chcesz zwrócić więcej niż jedną rzecz, to musisz w return zwrócić obiekt mający wiele pól lub uzupełnioną tablicę.
Tutaj masz banał, bo zwracasz tylko jedną zmienną, a możesz przypisać do $zt efekt substr, a potem wordwrapa.
Efektywny kod funkcji to więc
  1. function tekst($zt) {
  2. return wordwrap ( substr( $zt, 0, 20 ), 3, " ", true );
  3. }
co jest równoznaczne z
  1. function tekst($zt) {
  2. $zt = substr( $zt, 0, 20 );
  3. return wordwrap ( $zt, 3, " ", true );
  4. }

EDIT: Opcjonalnie zawsze możesz używać referencji, ale to już jest nieco bardziej ryzykowne z racji na jej właściwości, które mogą Cię zaskoczyć jeśli nie będziesz uważać co robisz.

Ten post edytował thek 7.01.2010, 21:25:23


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Mephistofeles
post 7.01.2010, 22:33:30
Post #7





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Echo wewnątrz funkcji to nie jest dobry pomysł, ale zależy co taka funkcja robi. Funkcja powinna zwracać wynik, a nie go wyświetlać. Co innego gdy sama funkcja w systemie odpowiada za wyświetlenie winksmiley.jpg.
Go to the top of the page
+Quote Post
Kamil Pietrzak
post 7.01.2010, 22:54:41
Post #8





Grupa: Zarejestrowani
Postów: 213
Pomógł: 10
Dołączył: 7.01.2010
Skąd: Lublin

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


heh, podsunalem ten pomysl, moze troche abys lepiej zrozumial
ale tez nei uwazam tego za dobre rozwiazanie

po prostu masz tak

function hehe($text)
{
return $text.', hol hol powiedzial swiety mikolaj';
}

echo hehe('macie bimber ?');

daj to do pliku, zapisz, wyslij na serwer i odpal
pozniej edytuj, az zalapiesz ogolna zasade ;>
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 - 09:10