Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: roznice w echo
Forum PHP.pl > Forum > Przedszkole
invx
dlaczego taki kod dziala poprawnie:
  1. <?php
  2. echo&#092;"
  3. <table cellspacing=0 cellpadding='0' style='border-collapse: collapse' width='100%'>
  4. <tr>
  5. <td width='50%'>&#092;";
  6. echo menu_admin(lewa);
  7. echo&#092;"
  8. </td>
  9. <td width='50%'>&#092;";
  10. echo menu_admin(prawa)
  11. echo&#092;"
  12. </td>
  13. </tr>
  14. </table>
  15. &#092;";
  16. ?>

a taki wstawia funkcje nad tabela
  1. <?php
  2. echo&#092;"
  3. <table cellspacing=0 cellpadding='0' style='border-collapse: collapse' width='100%'>
  4. <tr>
  5. <td width='50%'>
  6. &#092;".menu_admin(lewa).\"
  7.  </td>
  8. <td width='50%'>
  9. &#092;".menu_admin(prawa).\"
  10. </td>
  11. </tr>
  12. </table>
  13. &#092;";
  14.  
  15. ?>
scanner
pokaz jak wyglada funckja menu_admin() a sie wyjasni.
invx
  1. <?php
  2.  
  3. function menu_admin ( $strona )
  4. {
  5. if( $strona == lewa )
  6. {
  7. echo&#092;"Menu lewe\";
  8. }
  9. elseif ( $strona == prawa )
  10. {
  11. echo&#092;"Menu prawe\";
  12. }
  13.  
  14. $wykonaj_kat=mysql_query(&#092;"SELECT * FROM menu_kategorie WHERE strona='$strona'\") or die(mysql_error());
  15.  
  16. while($kategorie=mysql_fetch_array($wykonaj_kat))
  17. {
  18.  
  19. echo &#092;"
  20. <table width=350' cellspacing=0 cellpadding='0' style='border-collapse: collapse' bgcolor='#D1D1D1' border=1>
  21. <tr>
  22. <td width=70><b>$kategorie[nazwa]:</b></td>
  23. <td width=75><a href='form_menu.php?mode=edit_kategory&idm=$kategorie[id]'>Edycja</td>
  24. <td width=60><a href=save_menu.php?mode=del_kategory&idm=$kategorie[id]</a>Usun</td>
  25. <td width=50><a href='save_menu.php?mode=up_kategory'>W góre</a>
  26. <a href='save_menu.php?mode=down_kategory'>W dó³</a></td>
  27. </tr></table>
  28. &#092;";
  29.  
  30. $wykonaj_linki=mysql_query(&#092;"SELECT * FROM menu_linki WHERE id_kat='$kategorie[id]' AND strona='$strona'\");
  31. while($linki=mysql_fetch_array($wykonaj_linki))
  32. {
  33.  
  34. {
  35.  
  36. echo &#092;"
  37. <table width='350' cellspacing=0 cellpadding='0' style='border-collapse: collapse' border=1>
  38. <tr>
  39. <td width=70><a href=$linki[url]>$linki[nazwa]</a></td>
  40. <td width=75><a href=form_menu.php?mode=edit_link&id=$linki[id]>Edycja</a></td>
  41. <td width=60><a href=save_menu.php?mode=del_link&id=$linki[id]>Usun</a></td>
  42. <td width=50><a href='save_menu.php?mode=up_link'>W góre</a>
  43. <a href='save_menu.php?mode=down_link'>W dó³</a></td>
  44. </tr></table>
  45. &#092;";
  46.  
  47.  
  48. }
  49.  
  50. echo &#092;"
  51. <form method=POST action=form_menu.php?mode=add_link&idm=$kategorie[id]>
  52. <input type=textarea name=nazwa>
  53. <input type=submit name=s1 value=Nowy_link>
  54. </form><br>
  55. &#092;";
  56. }
  57.  
  58. echo &#092;"
  59. <form method=POST action=save_menu.php?mode=zapisz_kategory&idm=$kategorie[id]>
  60. <input type=textarea name=nazwa>
  61. <input type=submit name=s2 value=Nowy_blok>
  62. </form>
  63. &#092;";
  64.  
  65. }
  66.  
  67. ?>
maggot
W pierwszym przypadku uzycie ,,echo'' nie ma najmniejszego sensu, bo Twoja funkcja nie zwraca (poprzez return $costam) zadnej wartosci a jedynie produkuje efekt uboczny, ktorym jest wypisanie czegos na standardowe wyjscie. Po prostu napisz
  1. <?php
  2. echo '<table> ..';
  3. menu_admin(lewa);
  4. echo 'itd'
  5. ?>


W drugim przypadku, jest podobnie:
.menu_admin(lewa).
zostanie zamienione na .''. , czyli na wartosc, ktora zostala zwrocona przez funkcje.

Jak mozesz sie przekonac. php najpierw oblicza wartosc funkcji, ktore sa argumentami echo (dlatego efekt uboczne pojawiaja sie na poczatku) a dopiero potem je wyswietla.
invx
czyli nie ma mozliwosci, umieszczenia tej funkcji, w tabeli, z jednym uzyciem echo().
hwao
Cytat(invx @ 2004-06-23 19:40:52)
czyli nie ma mozliwosci, umieszczenia tej funkcji, w tabeli, z jednym uzyciem echo().

jest ale radze uzywac return a nie echo....
invx
czyli jak mozna to zrobic z uzyciem jednego echo() ?
hwao
W tej twojej funkcji uzywaj return nie echo wtedy bedzieszm mogl 1 echo...
offtopic.gif
Je¿eli jest to muj temat[...]
pisze sie mój :]
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.