我想在类方法中调用一个函数,我创建了这个脚本但是不能正常工作?
致命错误:在第12行的/.../.../index.php中调用null上的成员函数function2()
public static function table($name_t, callable $callback){
self::databaseConnection();
try {
$matches = array(
.....
);
function engine($var){
Gaia::$engine__ = $var[0];
}
$eng = new Table_call;
echo $eng;
$callback($matches);
if(isset(self::$s)){
//self::$instance->exec("CREATE TABLE IF NOT EXISTS ".$name_t."( ".trim(self::$s,',')." ) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
echo "Dump Success!<br> ".self::$engine__ ;
}
//return $bgj;
} catch (Exception $e) {
self::$instance = null;
echo ("Oh noes! There's an error in the query: ". $e);
}
}
班级档案2
class Table_call extends Gaia{
public function __call($name,$arg){
call_user_func($name,$arg);
}
}
索引文件
Gaia::table('test', function($table){
$table['autoIncrement']('id');
})->engine('MyISAM');
如何以这种方式添加功能?
" ->function2('hello') "?
答案 0 :(得分:0)
我不知道这是不是你想要的,但这是我能做的最小的例子。在你的问题中我不清楚你究竟想要做什么,因为你发布的任何代码都没有function2
,所以我不得不猜测那是什么。总之...
<?php
class Gaia{
public static function table(){
return new Table_call();
}
}
class Table_call extends Gaia{
public function function2(){
echo __METHOD__;
}
}
Gaia::table()->function2();
你可以在这里试试。
http://sandbox.onlinephpfunctions.com/code/dd1c5db302448e8f075a081acfc33cb00c3f71b5
查看你的代码,你没有返回任何对象来调用第二个函数。以这种方式思考
$var = Gaia::table();
//var is an instance of Table_call
$var->function2();
也是你的错误
致命错误:在第12行的/.../.../index.php中调用null上的成员函数function2()
默认的返回类型是NULL
所以......