我創建具有可變的一類,因爲你可以從下面的代碼中看到, 設置類變量的值,我想訪問PHP,如何從功能
$allen = new guest(...); echo $allen->userName;
,而不是我不得不使用創建類後,該
$allen->getUserName();
但由於用戶名不會改變,有沒有辦法做到這一點?
<?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]; // this is messy but work
}
function getUserName() {
preg_match('/^.*(?=(@))/i', $this->email, $userName);
return $userName[0];
}
}
?>
對於PHP類中的屬性使用'var'是PHP 4的倒退,只保留向後兼容.....但建議您使用'public' /'protected' /'private'可見性....但是,由於'var'被視爲'public','echo $ allen-> username;'是完全有效的 –
如果你不想在實例化類後修改$ username,請設置合適的可見性爲你的房產 –
你確定這是你的真實代碼,它的工作原理? 'getUserName()'是指'$ userName',而不是'$ this-> userName'? – alexis