错误:将参数传递给Kohana Controller中的方法时未定义的变量?

时间:2013-05-13 11:43:44

标签: php kohana kohana-3

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

使用内联时效果很好。

2 个答案:

答案 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;
}