Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP] extends - jak działa?
scanner
post
Post #1





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Zakładająć, że mamy taki kod:[php:1:14a5bc17af]<?php
class BaseModule
{
var $TAO;

function BaseModule()
{
$this->TAO = new Smarty;
}
}

class ModuleA extends BaseModule
{
function Foo()
{
$this->TAO->display( 'example.tpl' );
}
}
?>[/php:1:14a5bc17af]
Mam pytanie. Czy $TAO w klasie ModuleA jest kopią $TAO z BaseModule, czy jest referencją czy tym samym elementem?
Interesuje mnie to ze względu na ilość pamięci zajmowanej przez wilokrotnie extendowane klasy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
scanner
post
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Czyli, żeby mieć jeden obiekt smaty i nie musieć uzywać globa bądź $GLOBALS, jak dobzre rozumiem można użyć czegoś takiegojjak poniżej?[php:1:43e0d41b64]<?php
class BaseModule
{
var $TAO;

function BaseModule()
{
$this->TAO->_debug_mode = false;
}
}

class ModuleA extends BaseModule
{
function Foo()
{
$this->TAO->display( 'example.tpl' );
}
}

$Smarty = new Smarty();
$BaseModule = new BaseModule();
$ModuleA = new ModuleA();
$BaseModule->TAO = &$Smarty;

$ModuleA->Foo();
?>[/php:1:43e0d41b64]I czy kollejność linii 20 - 23 ma jakieś większe znaczenie?
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 19:28