Ошибка вызова функции undefined function при вызове метода класса

это ошибка. 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!";} }; } } 

У вас нет функции с именем assign() , но метод с этим именем. PHP – это не Java, а в PHP вы должны четко прописать, если вы хотите вызвать функцию

 assign() 

или метод

 $object->assign() 

В вашем случае вызов функции находится внутри другого метода. $this всегда относится к объекту, в котором существует метод, сам.

 $this->assign() 

вам нужно вызвать функцию, подобную этой

 $this->assign() 

вместо просто assign()

Братва,

Я наткнулся на эту ошибку сегодня, проверяя простой скрипт. Я не использую функцию «класса», хотя и беру ее с солью. Я вызывал функцию до ее определения и объявления … что-то вроде этого

  try{ foo(); } catch (exception $e) { echo "$e->getMessage()"; } function foo(){ echo "blah blah blah"; } 

поэтому php выбрасывает мне ошибку «вызов неопределенной функции».

Этот вид кажется классической ошибкой программирования, но может помочь кому-то, кто нуждается в подсказке.