это ошибка. 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 выбрасывает мне ошибку «вызов неопределенной функции».
Этот вид кажется классической ошибкой программирования, но может помочь кому-то, кто нуждается в подсказке.