Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Kolejność
art_php
post 27.02.2009, 09:49:46
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.07.2008
Skąd: Gdynia

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


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?
Go to the top of the page
+Quote Post
artur_dziocha
post 27.02.2009, 09:55:55
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

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


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
Go to the top of the page
+Quote Post
art_php
post 27.02.2009, 10:00:38
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.07.2008
Skąd: Gdynia

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


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.
Go to the top of the page
+Quote Post
nospor
post 27.02.2009, 10:04:52
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Cienki1980
post 27.02.2009, 10:07:17
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


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

Ten post edytował Cienki1980 27.02.2009, 10:07:51


--------------------
404
Go to the top of the page
+Quote Post
art_php
post 27.02.2009, 10:10:36
Post #6





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.07.2008
Skąd: Gdynia

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


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

Ten post edytował art_php 27.02.2009, 10:16:02
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: 6.07.2025 - 09:47