Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Kolejność
art_php
post
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
 
Start new topic
Odpowiedzi (1 - 5)
artur_dziocha
post
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
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
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ą.... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

i uzywaj wlasciwego bbcode
Go to the top of the page
+Quote Post
Cienki1980
post
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
Go to the top of the page
+Quote Post
art_php
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:42