BSDForen.de  

Zurück   BSDForen.de > Geekstuff > Programmieren

Antwort
 
Themen-Optionen Thema bewerten Ansicht
Alt 29.07.2012, 21:37   #1
lockdoc
Registered User
 
Benutzerbild von lockdoc
 
Registrierungsdatum: Feb 2005
Beiträge: 1.420
Php oop

Also ich habe eine Parent Klasse A, welche die Kindklasse B erbt.

Nun wollte ich eigentlich eine public var in der Parentklasse haben, welche von jeder der funktionen der Kindklasse B ueberschrieben wird.

In etwa so:
PHP-Code:
class A
{
    public 
$test;

}
class 
extends A
{
    public function 
foo()
    {
        
$this->test __FUNCTION__;
    }

Allerdings will ich dass das automatisch funktioniert, ohne das in jede function von B reinzuschreiben.

Die Frage ist hier ob das ueberhaupt geht?
__________________
https://github.com/lockdoc
There would be less blood spilt in the battlefields if there were more sweat spent in the training hall.
lockdoc ist offline   Mit Zitat antworten
Alt 29.07.2012, 22:17   #2
Herrmann
Registered User
 
Registrierungsdatum: Jul 2004
Beiträge: 440
Herrmann eine Nachricht über ICQ schicken
Hi lockdoc, bin mir nicht ganz sicher ob ich dich richtig verstanden hab. Probier mal folgendes. Natürlich funktioniert das nicht, wenn du in jeder Methode einen anderen Wert wie in deinem Beispiel setzen willst.

PHP-Code:
class A
{
    public 
$test;
}

class 
extends A
{
    public 
$test 'foobar';

    public function 
foo()
    {
    }

Herrmann ist offline   Mit Zitat antworten
Alt 29.07.2012, 23:06   #3
lockdoc
Registered User
 
Benutzerbild von lockdoc
 
Registrierungsdatum: Feb 2005
Beiträge: 1.420
Zitat:
Zitat von Herrmann Beitrag anzeigen
Natürlich funktioniert das nicht, wenn du in jeder Methode einen anderen Wert wie in deinem Beispiel setzen willst
Schade :-( aber Danke
__________________
https://github.com/lockdoc
There would be less blood spilt in the battlefields if there were more sweat spent in the training hall.
lockdoc ist offline   Mit Zitat antworten
Alt 29.07.2012, 23:42   #4
lockdoc
Registered User
 
Benutzerbild von lockdoc
 
Registrierungsdatum: Feb 2005
Beiträge: 1.420
Ich habs jetzt doch noch hinbekommen. Leider etwas unschoen. Evtl hat noch Jemand eine bessere Loesung.

Hierbei definiere ich die eigentlichen Methoden alle mit einem Unterstrich vorran, rufe sie aber ohne den Unterstrich auf.

PHP-Code:
<?php
class A
{
    public 
$caller;

    public function 
__destruct()
    {
        echo 
$this->caller;
    }
}
class 
extends A
{
    public function 
__call($methodName$args)
    {
        
$newName '_'.$methodName;

        if ( 
method_exists($this$newName) )
        {
            
$this->caller $methodName;
            
call_user_func_array(array($this$newName), $args);
        }
    }

    public function 
_foo($var)
    {

    }
    public function 
_bar($var)
    {
    }
}

$obj = new B;
$obj->bar('t');
__________________
https://github.com/lockdoc
There would be less blood spilt in the battlefields if there were more sweat spent in the training hall.
lockdoc ist offline   Mit Zitat antworten
Antwort


Dieses Thema betrachten zurzeit 1 Personen. (0 registrierte Benutzer und 1 Gäste)
 
Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus
Gehe zu

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
PEAR lässt sich nicht installieren! testit FreeBSD - Anwendungen und Ports 11 11.06.2012 08:51
Problem mit OpenBSD und phpMyAdmin f0x OpenBSD - Pakete und Anwendungen 4 03.06.2009 13:21
php5 problem jaboo FreeBSD - Anwendungen und Ports 13 28.03.2007 22:01
PHP Warning, Unable to load dynamic library crus4der FreeBSD - Anwendungen und Ports 3 16.08.2006 17:53
Postfix : fatal: invalid option: ? dvucko *BSD - Serverdienste 2 07.07.2005 16:59


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.


Powered by vBulletin (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.