调用类方法时"调用未定义的函数"错误

Tom*_*old 43 php oop methods class

这是错误,Fatal error: Call to undefined function assign(
这是代码,你可以看到我显然已经定义了函数,所以为什么它不起作用

class shades {
    function create($name, $shades, $slug, $shortDesc, $longDesc, $position){
        $name = sanitize_paranoid_string($name);
        $slug = slug($name);
        $shortDesc = sanitize_sql_string($shortDesc);
        $longDesc = sanitize_sql_string($longDesc);
        $query = mysql_query("INSERT INTO products (type, name, slug, shortDesc, htmlDesc, position)VALUES('shades','$name','$slug','$shortDesc','$longDesc','$position')")or die(mysql_error());  
        $ID = mysql_insert_id();
        assign($shades, $ID);
        if($query) {return true;}
        else {return false;};
    }
    function delassign($toID){
        mysql_query("DELETE FROM assign WHERE type='shades' AND toID='$toID'")or die(mysql_error());    
    }
    function assign($shades, $toID)
    {
        foreach($shades as $shade)
        {
            $result = mysql_query("INSERT INTO assign(type, typeID, toID)VALUES('shades','$shade','$toID')")or die(mysql_error());
            if($result){echo "Added!";}
            else{echo"Not Added!";}
        };  
    }
}
Run Code Online (Sandbox Code Playgroud)

Kin*_*nch 96

您没有名为的函数assign(),但是具有此名称的方法.如果你想调用一个函数,那么PHP就不是Java而是在PHP中你必须弄清楚

assign()
Run Code Online (Sandbox Code Playgroud)

或方法

$object->assign()
Run Code Online (Sandbox Code Playgroud)

在您的情况下,对函数的调用驻留在另一个方法中.$this始终指的是一个方法存在的对象本身.

$this->assign()
Run Code Online (Sandbox Code Playgroud)


Nan*_*nne 15

你需要像这样调用这个函数

$this->assign()
Run Code Online (Sandbox Code Playgroud)

而不仅仅是 assign()