Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php5] obiekt i dowolna wlasciwosc
be2k
post 23.07.2007, 21:29:52
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 14.07.2006

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


witam
dlaczego taki kod nie powoduje bledu nie powoduje bledu lub warningu:
  1. <?
  2. $jakasDowolnaNazwa->kolejnaDowolnaNazwa=wartosc;
  3. ?>

w skrypcie php jest tylko tylko ta jedna linia, wiec nie ma stworzonego zadnego obiektu (questionmark.gif).

To pierwsza sprawa a druga to taka ze cos takiego rowniez nie powoduje bledu lub warningu:
  1. <?
  2. class myClass
  3. {
  4.  private $zm;
  5.  
  6.  function test()
  7.  {
  8.  echo 'test';
  9.  }
  10. }
  11. $myObj=new myClass();
  12. $myObj->wymyslonaWlasciwosc=wartosc;
  13. ?>

przeciez nie ma takiej wlasciwosci jak 'wymyslonaWlasciwosc'?

oczywiscie pokazywanie bledow i warningow jest wlaczone
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kubarek
post 23.07.2007, 21:33:41
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.02.2007

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


jak nie ma takiej zmiennej w obiekcie, to się automatycznie tworzy

ale jeśli użyjesz już np.
Kod
$myObj->innaWartosc++;

a wcześniej nie było w obiekcie czegoś takiego jak innaWartosc, to interpreter zglosi blad


--------------------
// ...
Co nieco o mnie ;)
Go to the top of the page
+Quote Post
matix
post 23.07.2007, 22:05:56
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


Takie coś to się nazywa setter, czyli mozesz dodawać poza klasą wartości. Nie masz tego zdefiniowanego, ale po dodaniu tego:

  1. <?php
  2. public function __set($n, $v)
  3. {
  4. $this-> $n = $v;
  5. print 'Dodano do klasy: $this -> '.$n.' wartosc .'$v;
  6. }
  7. ?>


Zauważysz w jaki to sposób dziala.


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
Go to the top of the page
+Quote Post
be2k
post 23.07.2007, 22:18:20
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 14.07.2006

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


ok, wiem jak dziala metoda __set. rozumialbym to ze moj skrypt dziala jak dziala gdybym wlasnie mial ta metode zdefiniowana w ciele klasy, ale nie mam, wiec dlaczego dziala tak jak dziala?
Go to the top of the page
+Quote Post
Cysiaczek
post 24.07.2007, 01:38:25
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Tworzy się w ten sposób właściwość publiczną. Gdbybyś posiadał już zdefiniowaną taka nazwę składowej i oznaczoną jako prywatna albo choniona, to php zgłosiłoby błąd. Czasami jest to przydatne.

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
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: 24.07.2025 - 16:32