【发布时间】:2013-05-13 11:43:44
【问题描述】:
public function get_entity_keyNumber($entity)
{
$this->session = Session::instance();
(int)$lastNumber = 0;
$user_data= array_keys($this->session->as_array());
$user_experience = array_filter($user_data,function($value){return strstr($value, $entity);});
if(!empty($user_experience))
{
$lastElement = end($user_experience);
(int)$lastNumber = substr($lastElement,-1);
$lastNumber++;
}
return $lastNumber;
}
这个函数正在这样做,它返回我在 $user_data 中最后一个键的最后一个字符,并通过将其转换为整数来递增它。
$user_data = array("experience0") 就像我使用这个函数:
(int)$lastNumber = get_entity_keyNumber("experience");
它将返回 1,我将向会话添加另一个数组,名称为 experience1,然后是 experience2,experence3,因此它不能覆盖会话中的键
当我使用这个函数时为什么会抛出这个错误: 调用未定义函数 get_entity_keyNumber() 或有时 $entity 变量未定义 我是 php 和 kohana 的新手
当使用内联时,它可以完美运行。
【问题讨论】:
-
get_entity_keyNumber似乎是一个 method ,而不是一个全局 function 。 -
我拼错了,是的,它是一种方法,但是当我尝试使用它时说,就像你说的 $this->get_entity_keyNumber("experience") 它抛出一个错误,即实体变量未定义,此方法是在我使用它的同一类中定义。