Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] wyrażenie return
Forum PHP.pl > Forum > Przedszkole
kosmos
Witam
nie znalazłem nic o tym więc założyłem nowy temat.

Jak przy pomocy return mogę otrzymać np: całą tablice questionmark.gif

  1. <?php
  2. class Animals extends Person{
  3. var $color,$type;
  4.  
  5. function __construct($name,$age,$color,$type){
  6. $this -> name = $name;
  7. $this -> age = $age;
  8. $this -> color = $color;
  9. $this -> type = $type;
  10.  
  11. $_SESSION['table_animals'][]=array(
  12. 'name' => $this -> name,
  13. 'age' => $this -> age,
  14. 'color' => $this -> color,
  15. 'type' => $this -> type);
  16. }
  17.  
  18. function print_all_animals(){
  19. return  <----------------- i tu KLIN
  20. }
  21. }
  22. ?>


wiem że można to zrobić w taki sposób :

  1. <?php
  2. function print_all_animals(){
  3.  foreach($_SESSION['table_animals'] as $key => $value){
  4. print 'name: '.$value['name'].'<br>';
  5. print 'age: '.$value['age'].'<br>';
  6. print 'color: '.$value['color'].'<br>';
  7. print 'type: '.$value['type'].'<br>';
  8.  }
  9. ?>


ale nie chcę rozwiązać tego w powyższy sposób. Da się wydrukować elementy tej tablicy poprzez return questionmark.gif
empathon
Return służy zwracania wartości. Co Ty za cyrki chcesz wyprawiać?
Jeśli chcesz wydrukować całą tablice zrób:
  1. <pre>
  2. <?php print_r($array); ?>
  3. </pre>
kosmos
EMPATHON ale ty sie denerwujesz masakra


doskonale wiem że poprzez print_r otrzymam wydruk w następujący sposób

  1. <?php
  2. Array ( [0] => Array ( [name] => Blant [age] => 1 [color] => Black [type] => Cat )
  3. ?>


nie o to mi chodzi

chcę otrzymać wydruk takego formatu:

Blant
1
Black
Cat

WIEM też że można wyciągnąć wartości z tablicy zapisać je do zmiennych i wydrukowaćpo kolei utd itp sposobów jest od .....


chodziło mi w pytaniu konkretnie o return.

Ale ok skoro nie ma takiej opcji to trudno
scanner
return niczego ci na ekranie w żadnej formie nie wyświetli. Konstrukcja ta służy tylko i wyłącznie do zwrócenia wyniku działania metody/funkcji i do niczego innego.
kosmos
OK już sobie poradziłem.... najwidoczniej źle mnie zrozumiano

Pozdrawiam.

Kod
return $this->name.' '.$this->age.' '.$this->color.' '.$this->type;
empathon
Cytat(kosmos @ 29.05.2008, 00:02:05 ) *
EMPATHON ale ty sie denerwujesz masakra

Waleriany?

Zobacz jak możesz to ładnie zrobić:
  1. <?php
  2. class Animal {
  3. ...
  4. private function print_table($table_name, $propeties_to_print = array())
  5. {
  6. foreach($_SESSION[$table_name] as $key => $value) {
  7. foreach ($propeties_to_print as $property) {
  8. print "$property: {$value[$property]}<br />";
  9. }
  10. }
  11. return 'foo';
  12. }
  13.  
  14. function print_all_animals(){
  15. return $this->print_table('table_animals', array('name', 'age', 'color', 'type'));
  16. }
  17. ...
  18. }
  19. ?>

Return tu nic nie daje bo funkcja która wyświetla nie ma co zwracać. Jak sobie to wyobrażasz? TRUE gdy się to uda, FALSE gdy się nie powiedzie?
Prawidłowo powinno wyglądać to tak.

  1. <?php
  2. class Animal {
  3. private function print_table($table_name, $propeties_to_print = array())
  4. {
  5. foreach($_SESSION[$table_name] as $key => $value) {
  6. foreach ($propeties_to_print as $property) {
  7. print "$property: {$value[$property]}<br />";
  8. }
  9. }
  10. }
  11.  
  12. function print_all_animals(){
  13. $this->print_table('table_animals', array('name', 'age', 'color', 'type'));
  14. }
  15. }
  16. ?>

print_table możesz przenieść do klasy abstract.

Edit: Nie źle Cie zrozumiano, tylko źle zadałeś pytanie.
Jeśli tak to ta metoda powinna się nazywać np: getAnimalProperties()
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.