Kom ihåg mig?

PHP getters i klasser, funkar det?

 
Ämnesverktyg Visningsalternativ
Gammal 2012-07-23, 01:51 #1
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Standard PHP getters i klasser, funkar det?

Jag har testat lite php för skoj skull och nyfikenhet. Ville se hur implementationen av objektorrientering ser ut i PHP.

Hittils är jag inte ett dugg impad, de exempel på klasser, metoder och object på php.net lämnar mycket ett önska.

Hur som helst så testade jag hur det står till med getters och setters som finns i de flesta andra objektoerienterade programmeringsspråk.

Setters fick jag att funka även om det ser väldigt oelegangt löst ut enligt syntaxen, men det funkar i alla fall.

Men getters har jag inte lyckats få till. Hur tusan åstadkommer man det på ett bra sätt?

Bifogar min testkod som kompilerar felfritt som den ser ut med version 5.3.15.

Kod:
<?php
 class Person
 {
   private $_firsName="";
   private $_lastName="";

   public function __construct($pFirstName, $pLastName)
   {
     $this->_firstName = $pFirstName;
     $this->_lastName = $pLastName;
   }

	/* property setters */
	/*
	* The setters works as expected....
	*/
	public function _set_firstName($value)
	{
   		$this->_firstName = $value;
 	}
	public function _set_lastName($value)
	{
   		$this->_lastName = $value;
 	}


	/* property getters */
	/*
	* The getters DON'T work as expected....
	* Get errorcode 255 with no further explanation.
	* Dont find any information about getters in documentation
	*/
	/*
	* public string function _get_firstName()
	* {
   	* 	return $this->_firstName;
 	* }
	* public string function _get_lastName()
	* {
   	* 	return $this->_lastName;
 	* }

 	*/
   /*
    * a String representation for all Persons.
    */
	public function __toString()
	{
		return "Firstname: $this->_firstName , Lastname: $this->_lastName";
	}
}


?>

<?php
	# create a PHP Array and initialize it with Person objects
	$persons = array
	(
		new Person("Fredrik", "Hammarberg"),
		new Person("Greta", "Karlestam"),
		new Person("Urban", "Hallin"),
		new Person("Anna", "Bygdén")
	);

	# print out the results - calls Person->__toString().
	foreach($persons as $person) echo "$person<br>\n";
?>

Senast redigerad av Conny Westh den 2012-07-23 klockan 02:03 Anledning: För många tomma rader i källkoden
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 06:32.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017