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中最后一个键的最后一个字符,并通过将其转换为Integer来增加它。
$ user_data = array(“experience0”)就像我使用这个函数一样:
(int)$lastNumber = get_entity_keyNumber("experience");
它将返回我1,我将添加另一个数组到一个名为experience1的会话,然后是experience2,experince3所以它不能覆盖会话中的键
当iam使用此函数时,为什么这个抛出错误: 调用未定义的函数get_entity_keyNumber()或有时$ entity变量undefined 我刚接触php以及kohana
使用内联时效果很好。
答案 0 :(得分:0)
试试这个:
$instance->get_entity_keyNumber("experience");
$instance
表示方法get_entity_keyNumber
所属的类的实例。
在课程定义字段中,它将是$this
。
我很抱歉不知道 kohana 。
答案 1 :(得分:0)
我在类中使用了私有属性,同名并为方法参数赋值,并使用$ this来过滤数组值,我的OOP很弱:)
private $entity;
public function get_entity_keyNumber($entity)
{
$this->$entity =$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, $this->entity);});
if(!empty($user_experience))
{
$lastElement = end($user_experience);
(int)$lastNumber = substr($lastElement,-1);
$lastNumber++;
}
return $lastNumber;
}