为什么页面只在第一页加载时才会获得未定义的变量?

时间:2015-10-18 05:11:11

标签: php mysql wordpress

当页面第一次加载时,它还会检索该页面的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快,所以它说它未定义?

如果是这样,我可以克服什么方式?

1 个答案:

答案 0 :(得分:1)

php变量区分大小写。 $dataToSave$DataToSave不同。

  

变量名称区分大小写。

http://php.net/manual/en/language.variables.basics.php