当页面第一次加载时,它还会检索该页面的facebook喜欢,所以我编写了一个将数据保存到MySQL数据库的函数
缓存它,虽然在每个第一页加载时我得到undefined variable: DataToSave on line 70 and 71
。
这就是我运行该功能的方式。
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中,因为在第一个页面上它没有传递数据,我无法弄清楚如何让函数识别它。
如果我去数据库并将数据设置为任何数字,它会按照它的设想检索它,唯一的问题是将它传递给函数,为什么不呢?
是不是因为PHP函数的运行速度比没有数据集的JSON get快,所以它说它未定义?
如果是这样,我可以克服什么方式?
答案 0 :(得分:1)
php变量区分大小写。 $dataToSave
和$DataToSave
不同。
变量名称区分大小写。