phpbar.de logo

Mailinglisten-Archive

[php] Klassen - Referenz in Konstruktor

[php] Klassen - Referenz in Konstruktor

Christian Ruetgers chr at 1komma6.com
Fre Mai 28 13:13:47 CEST 2004


At 28.05.2004 12:53 (), you wrote:
>schlechter stil... du solltest NIE von aussen entscheiden, ob es eine
>referenz sein sollte oder nicht...
>
>eine funktione/klasse/methode soll logik kapseln. und diese logik legt
>auch fest, ob die parameter intern geaendert werden sollen oder nicht...

Wenn ich das richtig verstehe muß der Code dann folgendermassen aussehen?:

<?php

class c1 {
var $meinwert = 'leer';

function c1() {
; // NOP
}
}

class c2 {
var $_c1_obj = '';

function c2(&$c1ref) {
$this->_c1_obj = &$c1ref;
}

function zeige_wert() {
echo $this->_c1_obj->meinwert;
}
}

$c1 = new c1();
$c2 = new c2($c1);

$c1->meinwert = 'bin voll';
$c2->zeige_wert();
?>


>programmierer beim aufruf das & vergisst, funktioniert gar nix... wenn
>du es aber in der signatur der funktion festhaellst, ist es robuster...

Korrekt, das hatte mich auch schon gestört.


>ist "call_by_reference" nicht sowieso standardmaessig in der php.ini
>deaktiviert?

ein "php_flag allow_call_time_pass_reference 0" in der .htaccess schmeißt 
bei meiner alten Schreibweise tatsächlich einen Fehler, mit dem obigen Code 
nicht. Guter nützlicher Hinweis, danke!


-- 
Christian Ruetgers - Geschäftsführung Projekte / Technik
1komma6 - Multimediale Dienstleistungen GmbH
Fon: (0251) 57 29-7
Fax: (0251) 57 29-6
eMail: ch.ruetgers at 1komma6.com
Mobil: 0173/860 28 93

visit http://www.1komma6.com

php::bar PHP Wiki   -   Listenarchive