PHP 警告:..../memberlist.php(876) 中的非法字符串偏移量 'username':第 6 行的 eval() 代码

PHP Warning: Illegal string offset 'username' in ..../memberlist.php(876) : eval()'d code on line 6

我正在尝试获取我的 vbulletin 论坛上成员的用户名,以便我可以使用他们名字的第一个字母作为头像。我尝试了正常的方式和其他一些方式,但我没有成功。我认为这是由于信息在数组中。这是我的第一个字母的代码。

//get the username
$username = $userinfo['username']; 
//strip to get the first letter
$letterUsername['username'] = substr($username, 0, 1); 
//capitalize the first letter 
$letterUsername['username'] = strtoupper($letterUsername['username']); 
//set it as a variable 
$letterUsername = $letterUsername['username'];  

当我在 memberlist.php 页面上 运行 这段代码时,标题出现错误。第876行是钩子:

($hook = vBulletinHook::fetch_hook('memberlist_bit')) ? eval($hook) : false;

如何使用上述代码获取页面上所有成员的用户名?我对数组没有太多经验,真的需要帮助。这是 memberlist.php 文件:https://pastebin.com/wfgLikJ2

您在此处的变量名称之前缺少一个 $ 字符:$letterUsername = letterUsername['username']; => $letterUsername = $letterUsername['username'];

获取第一个字母并将其大写的另一种方法:

// I find it easier just to work with arrays, less functions to memorize
// [0] to get 0 index because str_split() converts string to an array
// Remember, functions are evaluated from innermost to outermost  
$letterUserName = strtoupper(str_split($userinfo['username'])[0]);

// or NOT converting to an Array, both work
// [0] here because string characters can be accessed with []
// "Hello"[1] === "e" 
$letterUserName2 = strtoupper($userinfo['username'][0]);

我尽量将尽可能多的内容放在一行中,否则你的代码将无法运行 从 200 行到 400 行超级快,让人不知所措。

我测试了一下,可以用^_^