私はクラスメソッド内で関数を呼びたいと思いますが、このスクリプトを作成しましたが、できる限り機能しません。クラスメソッド内で関数を呼び出すにはどうすればよいですか
Fatal error: Call to a member function function2() on null in /.../.../index.php on line 12
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') "?
静的関数静的なものではないが、 'を通じて::'要求する必要があります関数は '$ this->'で要求される必要があります。だからあなたの場合は、 'self :: function();'静的でない関数にするなら '$ this-> function();'になります。これはあなたを助けるだろうか?いくつかの追加の説明:https://stackoverflow.com/questions/1417438/what-are-static-and-dynamic-variables-methods-in-oop –
PHPコードをエコーしようとするところで、HTMLコード全体を投稿できますか? –
ok申し訳ありません。 –