Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php|oop] Zmienna publiczno-prywatna (lokalna)
Sokal
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 8.02.2007

Ostrzeżenie: (10%)
X----


Cześć.

Od dłuższego czasu w PHP brakuje mi zmiennej publiczno-prywatnej. Jest ona dostępna z zewnątrz, ale nie jest dziedziczona. Da się to jakoś rozwiązać bez pisania maila do developerów PHP? A może jest już taka możliwość, tylko nic o niej nie wiem? O.o

Kodowo:
Kod
class Example
{
  local $variable;
}

$example = new Example();
$example->variable = 123; // dozwolone

class ExampleParent extends Example
{
  public function get()
  {
    echo $this->variable; // nie wyswietli nic
  }
}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sokal
post
Post #2





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 8.02.2007

Ostrzeżenie: (10%)
X----


Stary problem ale gnębi... (frameworka już nie rozwijam)

Mam klase Controller, po której dziedziczą kontrolery... Jeżeli kontroler ma konstruktor to musi wywołać parent::__construct(); bo inaczej wywala error. W konstruktorze klasy Controller jest taka instrukcja $this->called = true; No i ta zmienna musi być dostępna z zewnątrz, ale nie może być dziedziczona, bo inaczej, ktoś sobie zrobi w konstruktorze kontrolera $this->called = true; i działa, errora nie ma... Przydałoby się żeby to nie było dziedziczone, ale żeby można to było z zewnątrz sprawdzić.
Go to the top of the page
+Quote Post
UDAT
post
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Czemu nie możesz zrobić tak:
  1. <?php
  2. class Controller {
  3. private $called = false;
  4.  
  5. public function __construct ( ) {
  6. $this -> called = true;
  7. }
  8.  
  9. final public function isCalled ( ) {
  10. return $this -> called;
  11. }
  12. }
  13. ?>


Z drugiej stony patrząc na kod na samej górze, możesz zrobić właściwość prywatną + getter'a i setter'a ( final ), który będzie analizował stacktrace'a i rzucał wyjątki ( przy czym nie widzę sensu tego rozwiązania )

Ten post edytował UDAT 28.06.2007, 13:27:17
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 4.10.2025 - 11:04