[OOP] Classes vanuit andere classes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »

Java Developer

Dit ga je doen Als Java Developer ben je verantwoordelijk voor: Het ontwikkelen van nieuwe en bestaande webservices; Het uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Het werken aan gegevensuitwisseling met bijvoorbeeld SOAP; Testen van frameworks met gebruik van UNIT en Selenium. Hier ga je werken De organisatie waar je komt te werken is een semi-overheidsinstelling, gesitueerd in Utrecht en zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Zo zorgen zij ervoor dat er op grote schaal vertrouwelijke informatie tussen verschillende overheidsinstellingen wordt uitgewisseld. Hun werk zorgt

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van hoogwaardige

Bekijk vacature »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

Medior/senior PHP ontwikkelaar E-commerce

Functie Het software development team bestaat momenteel 5 scrum teams . Ieder team heeft een eigen SCRUM Master en eigen tester. Zij werken voornamelijk in PHP en met hun eigen geschreven framework wat Symfony based is . Jij bent samen met je collega’s verantwoordelijk voor het interne softwaresysteem en alle projecten die daar omheen lopen. Alles wat jij ontwikkelt, wordt direct toegepast en uitgerold (wereldwijd). Dit maakt jouw werk tastbaar en uitdagend! Een greep uit jouw werkzaamheden: Toevoegen en ontwikkelen van nieuwe functionaliteiten Logistieke software ontwikkelen voor intern gebruik Tientallen gigabytes aan data inzichtelijk maken Altijd op zoek gaan naar

Bekijk vacature »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

Intern - Junior PHP ontwikkelaar in fris en jong t

Bedrijfsomschrijving Werk jij graag een in fris, flexibel en jong team? Bij ons ben jij vrij om te bepalen waar jij het liefst werkt en op de vrijdag komen wij gezellig bij elkaar op kantoor. Flexibiliteit en vrijheid zijn bij ons de norm en dat geeft jou de ruimte en energie om het beste uit jezelf te halen! Ons team bestaat uit vijf enthousiaste collega's die jou graag ondersteunen in zowel je persoonlijke als professionele ontwikkeling. Met twee ervaren Senior Developers als mentoren ben jij in goede handen. Wij zien onszelf als een vriendengroep die gezamenlijk werken aan iets moois

Bekijk vacature »

C#.NET ontwikkelaar

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Je bouwt webshops, webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Framework en C#. Je zorgt voor de optimalisering van bestaande software en de automatisering van

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

Pagina: 1 2 volgende »

Roel -

Roel -

29/08/2011 16:13:43
Quote Anchor link
Hoi,

Ik ben sinds een tijdje bezig met object georiënteerd programmeren omdat het me wel aanspreekt. Ik leer op school Java en die manier van programmeren spreekt me ook wel aan.

Wat ik dus heb gedaan, ik heb een paar classes gemaakt in PHP die ongeveer op hetzelfde neerkomen als in Java.

Waar ik echter mee in de knoop raak is het volgende.
Ik heb deze classes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
// Standaard classes
class Form
{
        private $aElements;
        
        public function setElements()
        {

                $this->aElements = func_get_args();
        }

        
        public function build()
        {

                $sForm = '<form method="post" action=""><p>';
                foreach ($this->aElements as $oElement)
                {

                        $sForm .= $oElement->build();
                }

                return $sForm.'</p></form>';
        }

        
        public function addActionListener($oHandler)
        {
                
        }
}


class Input
{
        private $bRequired;
        
        public function setRequired($bRequired)
        {

                $this->bRequired = $bRequired ? true : false;
        }
}


class Button extends Input
{
        private $sName, $sValue, $iType;
        
        public function __construct($sName, $sValue = '', $iType = 1)
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
                $this->iType = $iType;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="'.(($this->iType == 1) ? 'submit' : 'reset').'" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }
}


class Text extends Input
{
        private $sName, $sValue;
        
        public function __construct($sName, $sValue = '')
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="text" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }
}


// Classes per pagina
class KnopHandler
{
        
}


$oForm = new Form();
$oText = new Text('tekst');
$oButton = new Button('knop', 'Klik me');
$oForm->setElements($oText, $oButton);
echo $oForm->build();

?>


Ik wil zoals in Java bijvoorbeeld ook een addActionListener() functie hebben. Dan zou ik in mijn voorbeeld $oButton->addActionListener(new KnopHandler()) gebruiken. Kan iemand me helpen hoe ik dit kan realiseren?

Verder vraag ik me ook af hoe ik een object kan benaderen vanuit een ander object. Bijvoorbeeld, ik heb het object $oButton. In de class daarvan (class Button) wil ik $oText benaderen. Is dat mogelijk?

Bij voorbaat dank!
 
PHP hulp

PHP hulp

26/04/2024 02:20:38
 
Nick Audenaerde

Nick Audenaerde

29/08/2011 16:24:23
Quote Anchor link
Net als in java kan je classes extenden en classes includen in een andere pagina waardoor je deze weer aanroept.
 
Roel -

Roel -

29/08/2011 16:26:21
Quote Anchor link
Dat snap ik. Maar als ik in m'n Button class $oText probeer aan te roepen krijg ik fouten.
Gewijzigd op 29/08/2011 16:31:09 door Roel -
 
Fabian M

Fabian M

29/08/2011 17:44:03
Quote Anchor link
Roel van de Water op 29/08/2011 16:26:21:
Dat snap ik. Maar als ik in m'n Button class $oText probeer aan te roepen krijg ik fouten.


omdat $oText niet bestaat.
 
Roel -

Roel -

29/08/2011 17:48:33
Quote Anchor link
Ik heb het nu met extended gedaan inderdaad. Ik wist niet dat dat bedoeld werd.
Dat new KnopHandler() is trouwens geregeld.

Het tweede probleem lukt me nog steeds niet. Ik weet totaal niet wat ik moet doen. M'n script ziet er nu zo uit trouwens:
[script]
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
// Standaard classes
class Form
{
        private $aElements;
        
        public function setElements()
        {

                $this->aElements = func_get_args();
        }

        
        public function build()
        {

                $sForm = '<form method="post" action=""><p>';
                foreach ($this->aElements as $oElement)
                {

                        $sForm .= $oElement->build();
                }

                return $sForm.'</p></form>';
        }

        
        public function getValue($oElement)
        {

                return $_POST[$oElement];
        }
}


class Input
{
        private $bRequired;
        
        public function setRequired($bRequired)
        {

                $this->bRequired = $bRequired ? true : false;
        }
}


class Button
{
        private $sName, $sValue, $iType;
        
        public function __construct($sName, $sValue = '', $iType = 1)
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
                $this->iType = $iType;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="'.(($this->iType == 1) ? 'submit' : 'reset').'" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }

        
        public function addActionListener($oHandler)
        {

                if (isset($_POST[$this->sName])) {
                        new
$oHandler;
                        $oHandler->Main();
                }
        }
}


class Text extends Input
{
        private $sName, $sValue;
        
        public function __construct($sName, $sValue = '')
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="text" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }

        
        public static function getValue()
        {

                return 'test';// $_POST[$this->sName];
        }
}


// Classes per pagina
class KH extends Form
{
        public function Main()
        {

                echo $this->getValue('tekst');
        }
}


$oForm = new Form();
$oText = new Text('tekst');
$oButton = new Button('knop', 'Klik me');
$oButton->addActionListener(new KH());
$oForm->setElements($oText, $oButton);
echo $oForm->build();[/script]
 
Niels K

Niels K

29/08/2011 19:56:28
Quote Anchor link
Wat is precies je tweede probleem?
 
Roel -

Roel -

29/08/2011 21:42:47
Quote Anchor link
Dat vraag ik mezelf ook af na die post eerlijk gezegd.
Het ging volgens mij niet zoals ik het in de eerste instantie wou, hoewel me dit toch de beste oplossing leek...

Excuus :P
 
Write Down

Write Down

29/08/2011 23:51:58
Quote Anchor link
Sorry dat ik alsnog reageer, maar is het nu opgelost of niet?
 
Roel -

Roel -

30/08/2011 12:40:06
Quote Anchor link
Jep.
 
Roel -

Roel -

04/09/2011 17:23:59
Quote Anchor link
Ik raak er toch nog niet helemaal aan uit.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/* Standard classes */

// Form class

class Form
{
        private $aElements;
        
        // After all elements are created, add them to the form
        public function setElements()
        {

                $this->aElements = func_get_args();
        }

        
        // Build the form
        public function build()
        {

                $sForm = '<form method="post" action=""><p>';
                foreach ($this->aElements as $oElement)
                {

                        $sForm .= $oElement->build();
                }

                return $sForm.'</p></form>';
        }

        
        // Get the value of an object
        public function getValue($oElement)
        {

                return $this->aElements[$oElement]->getValue();
        }

        
        // Set the value of an object
        public function setValue($oElement, $sValue)
        {

                $this->aElements[$oElement]->setValue($sValue);
        }
}


// Input class, used for form elements
class Input extends Form
{
        // Get the name of a form element
        public function getName()
        {

                return $this->sName;
        }
}


class Button extends Input
{
        private $sName, $sValue, $iType;
        
        // Set the name, value and type for a button
        public function __construct($sName, $sValue = '', $iType = 1)
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
                $this->iType = $iType;
        }

        
        // Set the value of the button
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        // Return the HTML button
        public function build()
        {

                return '<input type="'.(($this->iType == 1) ? 'submit' : 'reset').'" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }

        
        // Add an ActionListener which is called when the button is clicked
        public function addActionListener($oHandler)
        {

                if (isset($_POST[$this->sName])) {
                        new
$oHandler;
                        $oHandler->Main();
                }
        }
}


class Text extends Input
{
        private $sName, $sValue;
        
        // Set the name and value for the textfield
        public function __construct($sName, $sValue = '')
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
        }

        
        // Set the value of the textfield
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        // Get the value of the textfield
        public function getValue()
        {

                return $_POST[$this->sName];
        }

        
        // Return the HTML textfield
        public function build()
        {

                return '<input type="text" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }
}


/* Classes per page */
class KH extends Form
{
        // Main() is called when the button is clicked
        public function Main()
        {

                $this->setValue('text', 'Text in a textfield');
        }
}


$oForm = new Form();
$oText = new Text('text');
$oButton = new Button('button', 'Click me');
$oForm->setElements($oText, $oButton);
$oButton->addActionListener(new KH());
echo $oForm->build();
?>


Wat ik probeer, is vanuit m'n KH() (knophandler) de value te veranderen van het tekstvak. Alleen krijg ik telkens een fatal error:
Fatal error: Call to a member function setValue() on a non-object in /usr/home/deb17902/domains/globallife.nl/public_html/form.class.php on line 35

Het script is hier te vinden: klik

Weet iemand wat te doen om het werkend te krijgen?
Thx!
Gewijzigd op 04/09/2011 17:24:48 door Roel -
 
Wouter J

Wouter J

04/09/2011 17:52:32
Quote Anchor link
Wat is de code waar je de method setValue aanroept?

De error zegt namelijk dat de var waarin je die method koppelt geen object is. Alsof je zoiets hebt gedaan bijv. :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$user
= 'Roel';
$user->setValue(); // Ahh, $user is een string geen object!
?>
Gewijzigd op 04/09/2011 17:52:59 door Wouter J
 
Roel -

Roel -

04/09/2011 17:55:32
Quote Anchor link
Dat is op regel 119. Ik snap inderdaad dat het daarom gaat.
Maar hoe fix ik dit? Bij het argument van de functie setValue ervoor zorgen dat ie het argument als een object ziet?
 
Roel -

Roel -

05/09/2011 19:20:20
Quote Anchor link
Bump.
 
Pim -

Pim -

05/09/2011 20:41:03
Quote Anchor link
Je doet het verkeerd.
De knophandler hoort Form niet uit te breiden, maar een form als property te dragen, zodat je erin $this->_form->setValue() kan doen.

Toevoeging op 05/09/2011 20:43:14:

Verder is het gebruiken listeners door requests heen (dus bijv. luisteren naar het submitten van een form) in PHP een stuk lastiger dan in Java, omdat daar de objecten blijven bestaan en je ze in PHP steeds moet herbouwen. Het is lastiger, niet onmogelijk, hoewel ik het niet echt op deze manier ben tegengekomen.
 
Roel -

Roel -

05/09/2011 21:12:44
Quote Anchor link
Ja het is ook een uitdaging om dit zo te maken.
Weet je ook hoe ik een form als property meegeef?

Ik zou namelijk totaal niet weten hoe ik dit moet doen.
 
Roel -

Roel -

06/09/2011 21:15:30
Quote Anchor link
Bump.
 
Wouter J

Wouter J

06/09/2011 21:48:07
Quote Anchor link
Waarom bump je elke dag? We zijn hier gewoon vrijwillig en als de persoon die hier van af weet even niet online is is dit niet erg.

Je kan een propertie maken van User door deze mee te geven in een methode. Voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
class User
{
  private $name;

  public function __construct( $name )
  {

    $this->name = (string) $name;
  }


  public function getName()
  {

    return $this->name;
  }
}

class Post
{
  protected $author;
  // veel code voor de post
  public function setAuthor( User $author )
  {

    $this->user = $author;
  }

  public function getAuthor()
  {

    return $this->user->getName();
  }
}


// Maak een nieuw User object
$user = new User('Roel');
// Maak een nieuw Post object
$bericht = new Post();
// Set de author door de User object mee te geven
$bericht->setAuthor($user);
// ... heel veel code ...
echo $bericht->getAuthor();
?>

Hierbij heb ik User als een propertie meegegeven aan $bericht. Deze heb ik in de propertie $author gezet. Vervolgens kan ik dit gewoon gebruiken als een class en kan ik $this->autor->getName() doen als ik de naam van User wil weten.
 
Roel -

Roel -

06/09/2011 23:41:18
Quote Anchor link
Kijk, daar heb ik wat aan.
Thx!
 
Ozzie PHP

Ozzie PHP

06/09/2011 23:49:55
Quote Anchor link
@Wouter: is dat eigenlijk de "normale" manier om een compleet User object mee te geven aan de setAuthor() functie? Je hebt toch alleen maar een naam nodig?

Is zoiets als dit niet logischer?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$user = new User('Roel');
$author = $user->getName();
$post = new Post($author);
echo $post->getAuthor();  
 
Wouter J

Wouter J

07/09/2011 07:59:27
Quote Anchor link
@Ozzie, ik ben niet heel goed in het OOP denken dus het kan totaal verkeerd zijn wat ik nu ga zeggen. Maar ik vind wat ik heb gedaan handiger. Stel dat je later ook nog een avatar wil van die author, of een stukje biografie van die author. Dan moet je al je code weer aanpassen. I.p.v. daarvan stop je gewoon de hele user object in de post, zo kunnen we via het post object zelf bepalen wat we willen en wat niet.
 
Ozzie PHP

Ozzie PHP

07/09/2011 12:36:51
Quote Anchor link
@Wouter, ik weet ook niet wat in dit geval "goed" is.

Hoe kijken andere leden hier tegenaan? Vooral de mensen die vaker met OOP werken?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.