【发布时间】:2016-01-01 14:37:10
【问题描述】:
这是我用来在 WordPress 中检索一些自定义用户元数据的方法:
$user_id = get_current_user_id();
$key = 'submit_data_' . $cat;
$single = true;
$viewed = get_user_meta( $user_id, $key, $single );
而var_dump($viewed); 会返回这个:
array(2) {
["catalog_number"]=> string(6) "VIZ025"
["sub_date"]=> string(19) "2015-09-29 06:40:18"
}
当我尝试使用 $viewed["catalog_number"] 访问这些值时,我收到了一个非法偏移警告,我理解,但随后使用 $viewed[0] 之类的东西不会返回任何内容。
如何访问这些值,例如“VIZ025”和日期字符串?
我需要在一些条件中使用这些值,如下所示:
<?php if($viewed["catalog_number"] == $cat) {
// stuff here
} ?>
更新
var_dump($viewed, $viewed['catalog_number']); 返回:
array(2) { ["catalog_number"]=> string(6) "VIZ025"
["sub_date"]=> string(19) "2015-09-29 06:40:18" } string(6) "VIZ025"
已解决
我需要使用 isset,因为新访问者在用户元表中还没有这个:
if (isset($viewed['catalog_number'])) {
$ccat = $viewed['catalog_number'];
}
这是一个宝贵的教训:始终确保有可访问的价值。
【问题讨论】:
-
$viewed["catalog_number"]应该不错 -
在 php 5.4 之后我得到一个非法偏移警告,所以我需要另一个解决方案。
string(6)是数组值的一部分,这就是我收到警告的原因(我认为)。 -
var_dump($viewed, $viewed['catalog_number']);它显示了什么? -
所以
$viewed['catalog_number']返回VIZ025。你有什么问题? -
你是对的 - 我的代码很好......我只需要检查那里是否真的有一个值。问题已更新。谢谢!