Ik ben nieuw met OO in php.
Ik heb van school een ebook gekregen en wat opdrachten en that's it. Verder moet je het maar uitzoeken.
De volgende opdrachten moet ik uitvoeren:
a. Zet de basis van een eenvoudige User class op.
b. Definieer een property (gebruikersnaam (username)) voor deze class. (public)
c. Voeg een get-method en een set-method toe.
d. Voeg een tweetal nieuwe objecten toe.
e. Laat de twee nieuwe objecten op het scherm afbeelden. (Harold en Albert)
En mijn code is als volgt:
<?php
class User
{
$Username;
function setName($Username)
{
$this->name = $Username;
}
function getName()
{
return $this->Name;
}
function _construct(){}
}
Je hebt dan de eigenschap private $Username, maar gebruikt daarnaast nog $this->name met een kleine letter en $this->Name met een hoofdletter. Dat zijn drie verschillende eigenschappen, die één eigenschap moeten worden.
Verder gebruik je de methode getName() nog nergens.
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');
class User
{
private $Username;
function setName($username)
{
$this->Username = $username;
}
function getName()
{
return $this->Username;
}
}
$user_one = new User();
$user_two = new User();
$user_one->setName('Harold');
$user_two->setName('Albert');
echo '<p>First user: ' . $user_one->getName() . '</p>';
echo '<p>Second user: ' . $user_two->getName() . '</p>';
?>
Deze lijn klopt niet helemaal. Je moet of de 2 variabelen aan elkaar koppelen (met de "." operator), of je moet wat anders leuks doen. Maar nu heb je 2 variabelen die elkaar opvolgen zonder iets ertussen, dat kan in PHP niet.
Tevens echo je nu objecten, je kan alleen strings echoën, dus dat werkt ook niet. Ik denk dat je getName() wilt echoën.
Als ik de leraar zou zijn zou je bonuspunten verdienen met het declareren van een private $username. Helemaal als je er dan het volgende commentaar bijzet:
"class variabele als private gedeclareerd, maar het property is public door de public getter en public setter."
Dan doe je het en goed en je geeft aan te begrijpen dat er een verschil is tussen een property en een variabele in een class. Public property is prima, maar een public class variabele is een slecht begin.