我创建具有可变的一类,因为你可以从下面的代码中看到, 设置类变量的值,我想访问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