PHP, how to set class variable value from function -


i creating class variable, can see code below, want access

$allen = new guest(...); echo $allen->username;

instead have use

$allen->getusername();

but since username won't change after class created, there way this?

<?php      class guest {          var $firstname;         var $lastname;          var $email;         var $username;          function guest($firstname, $lastname, $email) {             $this->firstname = $firstname;              $this->lastname = $lastname;              $this->username = getusername();  // option 1              $this->username = $this->getusername(); // option 2              preg_match('/^.*(?=(@))/i', $this->email, $username);             $this->username = $username[0];  // messy work           }         function getusername() {             preg_match('/^.*(?=(@))/i', $this->email, $username);             return $username[0];         }     } ?>    

in order deny direct access class attribute, can define private. doing that, construction $allen->username throw error. known encapsulation.

first make sure initialize class object properly. in php should define constructor using __constructor function. here example:

       class guest {     protected $lastname;     protected $email;     protected $lastname;     protected $username;      public function __construct($firstname, $lastname, $email, $username){         $this->firstname = $firstname;         $this->lastname = $lastname;         $this->email = $email;         $this->username = $username;     }     public function getusername(){         return $this->username;     }       } 

the constructor receives 4 parameters $firstname, $lastname, $email, $username. in order create object of class can execute following code:

$allen = new guest('john', 'doe', 'some.email@email.com', 'username'); 

to retrieve username, write following line:

$allen->getusername(); 

in current constructor bad, becuase think username attribute not initialized.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -