php - 为什么页面仅在首页加载时才获取 undefined variable ?

标签 php mysql wordpress

当页面第一次加载时,它还会检索该页面的 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.

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

关于php - 为什么页面仅在首页加载时才获取 undefined variable ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194532/

相关文章:

php - PDO 使用正确的值但将错误的值插入数据库

php - 执行 ('unzip gallery.zip',$返回); PHP

php - 如何在登录表单php上使用密码验证

mysql - 什么是 MySQL JDBC 驱动程序连接字符串?

mysql - 导入后 MySQL 数据库中的有趣字符

php - Phalcon PHP PDO BIND 导致结果为空

php - 使用插入到 php 文件中的 html 表单值进行 csv 导出

mysql - 使用 Mysql 检索特定元组

php - Wordpress 基本概念 - 如何扩展/覆盖/自定义插件 Hook ?

wordpress - WP 选项检测按下了哪个按钮