当页面第一次加载时,它还会检索该页面的 facebook 点赞数,因此我编写了一个函数,将数据保存到 MySQL 数据库中
缓存它,尽管在每个第一页加载时我都会得到 undefined variable :第 70 和 71 行的 DataToSave
。
这就是我运行该函数的方式。
echo $socialCounter->socialSharingCache('facebookLikes', $socialCounter->pageCounter($socialCounter->getLikes()))
getLikes 函数工作完美,并检索数据,我遇到的问题也是唯一的问题是当我加载页面时,socialSharingCache 函数无法识别 $dataToSave
这是金额该页面的点赞数..
public function socialSharingCache($saveName, $dataToSave)
{
$postDay = get_post_time( 'd', true, get_the_ID(), false );
$dateToday = date('d');
if( $postDay === $dateToday )
{
$setKey = 'socialSharingBar_'. get_the_ID() . '_' . $saveName;
$getTransient = get_transient ( $setKey );
if( $getTransient !== FALSE)
{
return $getTransient;
} else {
if(is_wp_error($dataToSave))
{
return $getTransient;
} else {
set_transient($setKey, $DataToSave, 60 * 20 );
update_option($setKey, $DataToSave);
return $dataToSave;
}
}
} else {
echo 'Post was not from today';
}
}
一旦我重新加载页面,错误就会消失,但 $dataToSave 不会插入 set_transient 中,因为在第一个 pageLoad 上它没有传递数据,而且我不知道如何使该函数识别它。
如果我进入数据库并将数据设置为任意数字,它会按照预期检索它,唯一的问题是将其传递给函数,为什么不是?
是不是因为PHP函数运行速度比没有数据集的JSON get快,所以说它是未定义的?
如果是这样,我可以采取什么方法来克服?
最佳答案
php 变量区分大小写。 $dataToSave
和 $DataToSave
不同。
The variable name is case-sensitive.
关于php - 为什么页面仅在首页加载时才获取 undefined variable ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194532/