Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kolejność
Forum PHP.pl > Forum > Przedszkole
art_php
Hej,
Testuje poniższy kod:

Kod
<?php

        class osoba
        {
                public $imie;
                public $nazwisko;
                
                public function __construct($imie, $nazwisko)
                {
                        $this -> ustawPersonalia($imie, $nazwisko);
                } // end __construct();

                public function ustawPersonalia($imie, $nazwisko)
                {
                        $this -> imie = $imie;
                        $this -> nazwisko = $nazwisko;
                } // end ustawPersonalia();
                
                public function personalia()
                {
                        return $this -> imie.' '.$this -> nazwisko;              
                } // end personalia();  
        }
        
        $osoba = new osoba('Adam', 'Kowalski');
      
        echo $osoba -> personalia();
?>


Wynik to 'Adam Kowalski', ale co ciekawe jak zmieniam ten wiersz:
Kod
return $this -> imie.' '.$this -> nazwisko;
na taki:
Kod
return $this -> nazwisko.' '.$this -> imie;

to wyświetla mi 'Kowalski Adam', a myślałem że wyrzuci błąd.

Myślałem że to zależy od tego w jakiej kolejności zadeklaruje odwołanie:
Kod
$this -> imie = $imie;
$this -> nazwisko = $nazwisko;

czyli musi być najpierw imię, a później nazwisko, a tu się okazuje, że nie.
Jak wpisuję nazwisko dwukrotnie po "return $th ..." to dwa razy wyświetla nazwisko 'Kowalski Kowalski'.
Z czego to wynika?
artur_dziocha
ponieważ tworzy Ci się tablica a z niej możesz pobierac wszystkie dane i ile razy chcesz

$osoba = new osoba('Adam', 'Kowalski');
var_dump($osoba); wyświetli Ci w ładny sposób tablice
art_php
W którym miejscu mam wkleić var_dump($osoba); ?
Jak wklejam na końcu za echo $osoba -> personalia(); to nic nie wyświetla, jak przed tym wersem to też nic.
nospor
Cytat
Wynik to 'Adam Kowalski', ale co ciekawe jak zmieniam ten wiersz:
Kod
return $this -> imie.' '.$this -> nazwisko;
na taki:
Kod
return $this -> nazwisko.' '.$this -> imie;

to wyświetla mi 'Kowalski Adam', a myślałem że wyrzuci błąd.

Moze to zrozumiesz:
znajdź sobie półkę, połóż na tę półke w takiej kolejnosci: jabłko, gruszkę.

Teraz cchesz wziąśc z tej półki gruszke. Uda ci sie czy nie? Przeciez gruszke położyles jako drugą.... winksmiley.jpg

i uzywaj wlasciwego bbcode
Cienki1980
Cytat(artur_dziocha @ 27.02.2009, 09:55:55 ) *
ponieważ tworzy Ci się tablica a z niej możesz pobierac wszystkie dane i ile razy chcesz

$osoba = new osoba('Adam', 'Kowalski');
var_dump($osoba); wyświetli Ci w ładny sposób tablice


Zwróć uwagę że to nie tablica, ale obiekt.

do autora:
Wyobraź sobie sytuację ... masz dwa koszyki, do pierwszego ( zielonego ) wkładasz 5 jabłek, a do drugiego ( czerwonego ) wkładasz 10 jabłek. Teraz żeby sprawdzić ile jest jabłek w każdym koszyku musisz do nich zaglądać w takiej samej kolejności jak wkładałeś jabłka ? NIE bo te jabłka już tam są i niezależnie w jakiej kolejności będziesz do nich zaglądał będzie tam tyle samo jabłek.

Tutaj jest dokładnie tak samo. Stworzyłeś dwie zmienne , przypisałeś im wartości. Nie ważne w jakiej kolejności to zrobiłeś, ważne jest to że w ogóle to zrobiłeś. Teraz odwołując się do tych zmiennych masz tam zawsze takie same wartości. A kolejność nadawania zmiennym wartości jak i odczytywanie tych wartości jest bez różnicy.

EDIT UP: nospor jak zwykle szybszy:D
art_php
Rozumiem.
Tylko myślałem, że w programowaniu trzeba się sztywno pewnych konwencji trzymać.
Ok - dzięki za pomoc. Przykłady wyczerpujące i przejrzyste smile.gif
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.