使PHP对象根据变量名称执行不同的操作

Bra*_*ons 1 php class

例如,假设我有一个用户数据库.我有一个类,从数据库中获取有关这些用户的信息.

我想让这个类"自我意识"它自己的名字,像这样:

<?php

class UserData {

//[code that fetches the ID number from the variable name, and queries the database for info]

}

$user24 = new UserData;
echo 'Welcome, '.$user24->name.'!';

?>
Run Code Online (Sandbox Code Playgroud)

理想情况下,这段代码会输出类似"欢迎,鲍勃!"的内容,并会根据我的命名而改变.这可能吗?

Gre*_*ill 6

由于给定对象可能具有多个名称,因此在现代编程语言中这不是通常有效的技术.例如,假设用户25具有与用户24不同的名称,您希望以下代码打印什么?

$user24 = new UserData;
echo 'Welcome, '.$user24->name.'!';
$user25 = $user24;
echo 'Welcome, '.$user25->name.'!';
Run Code Online (Sandbox Code Playgroud)

不仅如此,你可以拥有没有名字的物品:

echo 'Welcome, '.(new UserData)->name.'!';
Run Code Online (Sandbox Code Playgroud)

一个更典型的实现会让对象构造函数接受一个参数,告诉它你正在处理哪个用户,如下所示:

$user = new UserData(24);
echo 'Welcome, '.$user->name.'!';
Run Code Online (Sandbox Code Playgroud)