Большинство людей, начинающих с PHP, не называют эти «статические переменные». Вы случайно мигрировали с Java? Это немного сдвиг парадигмы, если вы переключаетесь на HTTP без сохранения состояния - memcached был разработан для этого (хотя я не уверен, что APC или другие кэши opcode были). Сессии на основе файлов cookie были своего рода , предназначенные для этого.
Если вы пытаетесь избежать повторных запросов для одного и того же запроса, положитесь на кеш запросов CI (и кеш запросов вашего сервера баз данных, в этом отношении) или используйте то, что PHP называет «статическими переменными»:
class Some_model extends CI_Model {
protected static $some_result;
public function getResult()
{
if (empty(self::$some_result))
{
self::$some_result = $this->db->get('table')->result();
}
return self::$some_result;
}
}
Возможно, вам придется настроить, если запрос может вернуть пустой, но вы получите точку. Это также несколько не нужно для моделей, так как я не думаю, что вы можете создать более одного экземпляра через CI_Loader в любом случае ...