我拼命地学习如何使用PHP中的类。我试图做一个简单的类来复制存储用户信息的坏习惯,作为一个数组,我将首先将它设置为“全局”,然后用于函数。简单的php类来存储用户信息
下面是我做这个类非常笨拙的尝试。它不起作用的原因有100个。你能修好它吗?
class user{
private $user;
function __construct(){
$user=/*some SQL to create a $user array. Assume one pair is 'firstname'=>'Brian'*/
}
function showValue($key) {
echo $user[$key];
}
function changeValue($key,$newValue) {
$user[$key]=$newValue;
}
}
echo "Hello there ".user->showValue('firstname')."!"; //should echo: Hello there Brian!
user->changeValue('firstname',"Steven");
echo "Now your name is ".user->showValue('firstname'); //should echo: Now your name is Steven
//the same class needs to work inside a function too
function showLogin() {
echo "Logged in as ".user->showValue('firstname');
}
showLogin(); //Should echo: Logged in as Steven
UPDATE
为什么我不想这样做,因为数组不再的原因是因为我经常不得不使用数组内的功能是这样的:
function showLogin() {
global $user;
echo "Logged in as ".$user['firstname'];
}
showLogin();
我想避免使用那里的“全球”,因为我被告知这是邪恶的。
而且我不想通过$ user将showLogin()传递给showLogin($ user)。在这个非常简单的情况下,它是有道理的,但是当我做很复杂的函数来绘制像这样的很多数组时,我不想让每个数组都通过。
这比一个简单的休闲阵列更糟糕。你为数组做了一个包装。而且你做错了方式。 :)你有像__set和__get这样的魔术方法。 –
发布你得到的错误将是一个很好的开始寻求帮助的地方... – JRizz
也许我错过了一些东西,但为什么你不使用会话变量?将用户信息存储在会话中。 –