new class echoeen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick van der heijden

nick van der heijden

02/03/2012 17:05:49
Quote Anchor link
hallo,

kan je van uit een class iets echoeen?
ik bedoel zo

voorbeeld:

$naam = new name('iets');
echo $naam;

of moet je dan persee werken met throw new exception?
 
PHP hulp

PHP hulp

23/02/2025 17:16:45
 
Jurgen B

Jurgen B

02/03/2012 17:16:10
Quote Anchor link
Erm, wat zou je uit een class willen echoen op deze manier? Daarnaast is Name ook niet een naam die ik als geschikt kan zien voor een klasse.

Een voorbeeldje van hoe je dit zou kunnen doen:
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
<?php
class User {
   private $name = '';

   public function __construct($name) {
      $this->name = $name;
   }


   public function getName() {
      return $this->name;
   }
}


$gebruiker = new User('klaas');
echo $gebruiker->getName();
?>
Gewijzigd op 02/03/2012 17:35:36 door Jurgen B
 
Nick van der heijden

nick van der heijden

02/03/2012 17:20:25
Quote Anchor link
jaa klopt normaal doe je dat niet maar wou gewoon weten of het kon meer niet ;) dankje
 
Jurgen B

Jurgen B

02/03/2012 17:27:49
Quote Anchor link
Je kan natuurlijk ook de property public laten en als 'echo $gebruiker->name' aanroepen.
 
Wouter J

Wouter J

02/03/2012 17:28:39
Quote Anchor link
Je kan ook de magic method __toString gebruiken:
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
<?php
class Person
{
  protected $name = '';
  protected $country = '';

  public function __construct( $name, $country )
  {

    $this->name = $name;
    $this->country = $country;
  }


  public function __toString()
  {

    return $this->name.' woont in '.$this->country;
  }
}


$nick = new Person('Nick', 'Nederland');

echo $nick; // Nick woont in Nederland
?>


@Jurgen, ik heb nog nooit zoveel fouten in een OO script van 16 regels gezien :o Jou code zou zo nooit kunnen werken:
- private, protected of public vergeten bij functies
- function vergeten bij de constructor
- bij property moet de $ voor de property naam, niet voor de visibility
Gewijzigd op 02/03/2012 17:29:52 door Wouter J
 
Nick van der heijden

nick van der heijden

02/03/2012 17:29:46
Quote Anchor link
ooh zo oke ik snap het dank je
 
Jurgen B

Jurgen B

02/03/2012 17:30:07
Quote Anchor link
Pardon? Ik typ even snel een voorbeeldje, dat ik $private name type, dat moet ofc private $name zijn maar daar gaat het hier niet om en dit is idem mbt public methods. Oja en het enige andere dat ik kan bedenken is private/protected en dat hangt af van de uiteindelijke implementatie.

Mbt visibility is dat in die zin geen probleem dat het gewoon zal werken, maar dat neemt niet weg dat het de voorkeur geniet dit expliciet te vermelden.
Gewijzigd op 02/03/2012 17:41:57 door Jurgen B
 
Wouter J

Wouter J

02/03/2012 17:39:17
Quote Anchor link
@Jurgen, als je een voorbeeldje wilt laten zien moet je het wel meteen goed doen. Niet eigenlijk elke regel fout schrijven.

Quote:
dat ik $private name type

En geen function voor constructor zet... Deze 2 zouden je wel een fout opleveren in php, dat je visibility vergeet vind ik zo erg niet, het is slechts een voorbeeldje, maar dingen die je een ERROR zouden opleveren moet je niet als voorbeeld geven aan iemand die hulp vraagt.

Quote:
Heb het maar even aangepast voordat grammarnazi weer terug is.

Weet niet wie je hier mee bedoelt, maar goed dat je het hebt aangepast!
Gewijzigd op 02/03/2012 17:39:55 door Wouter J
 
Pieter Jansen

Pieter Jansen

02/03/2012 17:40:49
Quote Anchor link
Kinderen, kinderen, rustig aan..

Je kunt ook gewoon keihard print_r($object); doen, dan krijg je je hele object terug, als dat is wat je bedoelt. Verder moet je vooral kijken en leren wat Wouter probeert uit te leggen, dus gewoon netjes getters en setters maken, of als je lui bent de __get en __set overloaden.
 
Jurgen B

Jurgen B

02/03/2012 17:44:21
Quote Anchor link
Wouter J op 02/03/2012 17:39:17:
@Jurgen, als je een voorbeeldje wilt laten zien moet je het wel meteen goed doen. Niet eigenlijk elke regel fout schrijven.

Overdrijven is een kunst maar je hebt gelijk ik had beter op de syntax errors moeten letten. Helaas krijg ik deze niet te zien als ik snel iets in een reactie typ. Zal het de volgende keer eerst in de editor doen om dergelijke fouten te voorkomen. Het was meer een kwestie van snel snel dan niet weten waar ik mee bezig ben, maar dat is mijn eigen schuld.
Gewijzigd op 02/03/2012 17:44:49 door Jurgen B
 
Wouter J

Wouter J

02/03/2012 17:46:49
Quote Anchor link
Quote:
Helaas krijg ik deze niet te zien als ik snel iets in een reactie typ. Zal het de volgende keer eerst in de editor doen om dergelijke fouten te voorkomen. Het was meer een kwestie van snel snel dan niet weten waar ik mee bezig ben.

Ik geloof best dat je weet waarmee je bezig bent, anders begin je niet aan OO. En je kan het toch ook zien zonder de errors in je editor? Ik zie nooit errors in mijn editor...
 
Jurgen B

Jurgen B

02/03/2012 17:49:56
Quote Anchor link
Eerlijk is eerlijk dat ik ze voorheen wel zag maar nu ook niet meer, zal wel eens iets aan de instellingen hebben veranderd (verwijzing naar local PHP installatie waarschijnlijk). Anyway, toen je zei dat er veel fouten in zaten heb ik pas gelezen wat ik daadwerkelijk had gepost en ik kan ook niet anders zeggen dan dat het slordig was ;)
 



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.