有效if语句中的语法错误

时间:2014-03-25 14:42:27

标签: php

我有一个PHP方法,它从memcache或数据库中检索数据(如果它尚不可用)。 有时必须从数据库加载数据以更新内存缓存,例如,如果发生了某些变化。

public function get_likes_per_user($u_id, $force_db = false) {
    if ($this->memcache) {
        $u_id = intval($u_id);
        $key = 'liked_news_' . $u_id;
        $res = $this->memcache->get($key);
        if ($res != '') {
            $res = unserialize($res);
        }
        // This line causes a syntax error for no obvious reason
        if(!is_array($res) || $force_db){ 
            $res = array();

            $sql = "...";
            $uu_query = $this->datenbank->query_result($sql);
            while ($row = $uu_query->fetch_row()) {
                $res[] = $row['uu_id'];
            }
            $this->memcache->set($key, serialize($res), 0, 3600);
        }
        return $res;
    } else {
        throw new Exception("Kein Memcache Objekt!");
    }
}

出于某种原因,我不明白php决定为if语句抛出语法错误,该语句决定是否从数据库重新加载数据。

我为这个陈述尝试了不同的符号,但我无法弄清楚导致错误的原因。

有没有人遇到过类似的东西?

PHP版本5.4

更新

我找到了错误的原因。我正在使用mac并写一个管道charakter你必须按alt+7。如果按alt+spacebar,Mac OS X将插入一个不间断的空格,这对PHP无效。所以我的错误是在输入OR语句的两个管道后保持alt压力。

0 个答案:

没有答案