ホームページ >バックエンド開発 >PHPチュートリアル >【緊急ヘルプ】致命的なエラー: 非オブジェクト上のメンバー関数 *** の呼び出し
php クラス
ソースコードは非常に長く、抽象化すると、プロセスはおおよそ次のようになります。{$instest = new test();$insobject = new object();$instest->test($insobject);}class test{function test($insobject){$insobject->hello();}}class object{function hello(){echo "hello";}}
一般に、設計の観点からは、継承を使用する方が良いでしょう。
継承を使用した例を教えていただけますか? ありがとうございます
{
$instest = new test();
$insobject = new object();
クラステスト{
関数 test(){
$insobject-> hello(); }
}
class object{
function hello(){
echo "hello";
}
}
これにより、次のようなエラーが発生します: Fatal error: Call to a member function hello() /home/latelx64/workspace/zhebo/init.php の 158 行目の非オブジェクト上で
インスタンスが他のインスタンスのパブリック関数を呼び出せないためでしょうか?
そうでない場合、同様の方法でどのように解決する必要がありますか? ? ?
私は PHP の初心者なので、専門家が指導してくれることを願っています。 ! !
継承を使用すると、親クラスで宣言されたインスタンス内のデータは、サブクラスで宣言されたインスタンスには存在しません。
これはオブジェクト指向とは何の関係もありません。
それは変数スコープの問題です!
class test{
$insobject->hello();
} }
$insobject はローカル変数であり、値は割り当てられません。
もちろん hello メソッドはありません
各関数でグローバル変数を宣言する必要がありますか?
これはオブジェクト指向とは何の関係もありません。
それは変数スコープの問題です!
class test{
$insobject->hello();
}
}
$insobject はローカル変数であり、値は割り当てられません。
もちろん、hello メソッドはありません
class test{
。それほど複雑ではありません なんと! !もっと気の利いたものはないでしょうか
これはオブジェクト指向とは何の関係もありません。
class test{
function test(){
$insobject->hello();
}
}
$insobject はローカル変数であり、値は割り当てられません。
もちろん、hello メソッドはありません
$_ENV['?量名']
?玩意可以超全局使用,?似的?有:
$_GLOBALS['?量名'];$_GET['?量名'];$_POST['?量名'];$_REQUEST['?量名']等
如果你非要这样做的话,那么函数就需要传参,传一个对象进来。
{$instest = new test();$insobject = new object();$instest->test($insobject);}class test{function test($insobject){$insobject->hello();}}class object{function hello(){echo "hello";}}
class test{ function test(){ object::hello(); }}class object{ Public static function hello(){ echo "hello"; }}