php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.10.2008, 21:31  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard Classen problem

Hallo,

ich hoffe das ist erlaubt so wie ich es jetzt mache.

PHP-Code:
<?
class Bruch 
{
    protected 
$_zaehler;
    protected 
$_nenner;
    
    function 
__construct($a$b
    {
        
$this->_zaehler $a;
        
$this->_nenner $b;
    }
    
    public function 
ausgabe()
    {
        return 
$this->_zaehler "/" $this->_nenner;        
    }
    
    public function 
mult ($m)
    {
        
$erg = new Bruch(0,0);
        
$erg->_zaehler $this->_zaehler $m->_zaehler;
        
$erg->_nenner  $this->_nenner  $m->_nenner;
        return 
$erg;
    }
}
?>
es geht umd die function mult.
In der letzten Zeile steht return $erg;
ich versteh einfach nicht wohin es gegeben wird der wert. Das ganze ist aus einem buch es wird zwar erklärt aber nicht so das ich es versteh. Das andere ist mir soweit jetzt schon klar aber da komm ich nicht mehr mit.
Ich hoffe es kann mir jemand sagen was das ganze macht.

Danke
martl666 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.10.2008, 21:37  
Erfahrener Benutzer
 
Benutzerbild von zwerg
 
Registriert seit: 12.08.2005
Beiträge: 437
zwerg
Standard

Ich verstehe deine Frage nicht ganz. Der Wert $erg wird wiedergegeben wenn du die Funktion aufrufst, also zum Beispiel:
PHP-Code:
 $bruch = new Bruch;
 echo 
$bruch->mult($deineVariable); // hier wird "$erg" ausgegeben 
zwerg ist offline  
Alt 15.10.2008, 21:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das stimmt doch hinten und vorne nicht (oder ist vollkommen aus dem Kontext gerissen, gings da um Decorator oder dergleichen?).

- ich benötige ein Objekt um mult () aufzurufen, das liefert mir aber ein zweites Objekt zurück...
- ... für das genau wie für den Übergabeparameter versucht wird, auf protected Eigenschaften zuzugreifen.

[edit]
Aber offensichtlich soll die Methode für einen Bruch das Produkt mit einem zweiten Bruch-Objekt als Ergebnis (Bruch-Objekt) zurückgeben.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (15.10.2008 um 21:41 Uhr).
nikosch ist gerade online  
Alt 15.10.2008, 21:40  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard

hier der Objekt aufruf.

PHP-Code:
<?
require_once 'Bruch.php';

$a = new Bruch(3,7);
$b = new Bruch(4,5);

echo 
$a->ausgabe() . " * " $b->ausgabe() . " = " $a->mult($b)->ausgabe();

?>
martl666 ist offline  
Alt 15.10.2008, 21:43  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Und funktioniert das tatsächlich trotz der protected Zugriffe?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 15.10.2008, 21:44  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard

ja funktionieren tut das super. Ich versteh es nur leider nicht komplett.
martl666 ist offline  
Alt 15.10.2008, 21:47  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Der ganze Zauber passiert in mult ().
Zuerst wird ein Bruch Objekt erzeugt ($erg) - leer initialisiert.
Dann werden ihm Nenner und Zähler zugewiesen. Dazu wird der entsprechende Wert aus dem aktuellen Objekt ($this) mit dem eines übergebenen Objektes ($m) multipliziert. Das Ergebnis fließt in das neue Objekt ein.

Das ganze Konstrukt multipliziert also streng genommen nicht zwei Bruch Objekte miteinander, sondern eines mit dem aktuellen. Eine etwas eigenwillige Art im Bereich der Objektorientierung. Ein vergleichbares Denkmodell ist wohl ein Taschenrechner, bei dem jede Operation immer bezüglich des aktuellen Wertes erfolgt. Der Unterschied: Die Methode mult () spuckt ein neues Objekt aus. Würdest Du stattdessen
PHP-Code:
    public function mult ($m)
    {
        
$this->_zaehler $this->_zaehler $m->_zaehler;
        
$this->_nenner  $this->_nenner  $m->_nenner;
    } 
schreiben, hättest Du den ultimativen Taschenrechner (mit genau einer Funktion).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (16.10.2008 um 09:57 Uhr).
nikosch ist gerade online  
Alt 15.10.2008, 21:50  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard

wenn ich des jetzt richtig verstehe steht in

mult = return $erg?

kann ich das so betrachten?
martl666 ist offline  
Alt 15.10.2008, 21:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Häh? Wie jetzt?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 15.10.2008, 22:08  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard

Jetzt bin ich nicht mehr dabei. Ich check es einfach heute nicht mehr. Vielleicht sollt ich einfach mal eine nacht darüber schlafen und morgen mir das nochmal anschauen. Vielleicht seh ich dann den Wald wieder .
Also dann erstmal danke.
martl666 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum