ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト プログラミングの問題、非オブジェクトのメンバー関数 hello() の呼び出し

PHP オブジェクト プログラミングの問題、非オブジェクトのメンバー関数 hello() の呼び出し

WBOY
WBOYオリジナル
2016-06-23 14:21:13954ブラウズ

<?php	$instest = new test();	$insobject = new object();	$insobject->objectValue = "final";	$instest->test();	class test{		var $testValue = "testValueins";		function test(){			print_r($insobject);			$insobject->hello();		}	}	class object{		var $objectValue = "original";		function hello(){			echo $objectValue;		}	}?>


エラーは次のとおりです

注意: 未定義の変数: C:wampwwwzhebotest.php の 11 行目の insobject
コールスタック
注意: 未定義の変数: insobject in C:wampwwwzhebotest.php の 12 行目
致命的なエラー: C C:wampwwwzhebotest.php の 12 行目で非オブジェクトのメンバー関数 hello() にすべてを追加します

これには問題がありますか? インスタンス内で他のインスタンスのメソッドを参照するにはどうすればよいですか? あるいは、より良い解決策はありますか?
急いでいるのですが、皆さんが手伝ってくれると嬉しいです。どうもありがとうございます。非常に緊急。オブジェクトを使ってプログラミングするのは初めてで、まだよくわかりません。


ディスカッションへの返信(解決策)

	$instest = new test();	$insobject = new object();	//$insobject->objectValue = "final";	object::$objectValue= "final";	$instest->test();    class test{        var $testValue = "testValueins";        function test(){           object::hello();        }    }    class object{        public static $objectValue = "original";        Public static function hello(){            echo self::$objectValue.'<br>';        }    }

?終了?のみ??あなた??いいえ??、後悔しています、

?終了?のみ??あなた??いいえ??、後悔しています、

いいえ、その投稿に対する解決策はまだ公開されていません。もちろん、待って完了する必要があります:)

?ついに??あなた??おい??、残念です、

どうやらそれのようです静的化は使用できますか?

渡すかグローバル宣言がなければ、外部変数に内部でアクセスすることはできません (オブジェクトは変数をキャリアとしても使用します)
これは PHP 構文の基本ルールであり、これを超えることはできません

$insobject = new object();$insobject->objectValue = "final";$instest = new test($insobject);//$instest->test(); 这是构造函数,一般不这样调用 class test{  var $testValue = "testValueins";  function test($insobject){    print_r($insobject);    $insobject->hello();  }} class object{  var $objectValue = "original";  function hello(){    echo $this->objectValue; //访问属性要这样  }}
object Object ( [objectValue] => Final ) Final

渡すかグローバル宣言がなければ、外部変数に内部でアクセスすることはできません (オブジェクトは変数をキャリアとしても使用します)
これは PHP 構文の基本ルールであり、超えることはできません

$insobject = new object();$insobject->objectValue = "final";$instest = new test($insobject);//$instest->test(); 这是构造函数,一般不这样调用 class test{  var $testValue = "testValueins";  function test($insobject){    print_r($insobject);    $insobject->hello();  }} class object{  var $objectValue = "original";  function hello(){    echo $this->objectValue; //访问属性要这样  }}
object Object ( [objectValue] => Final ) Final

したがってこのように一般的に使用されていない場合、今、テスト内のテスト関数を外部から呼び出すにはどうすればよいですか?


外部変数は渡されるかグローバルに宣言されない限り内部でアクセスできません (オブジェクトも変数をキャリアとして使用します)
これは php の基本的なルールです文法の限界を超えることはできません

$insobject = new object();$insobject->objectValue = "final";$instest = new test($insobject);//$instest->test(); 这是构造函数,一般不这样调用 class test{  var $testValue = "testValueins";  function test($insobject){    print_r($insobject);    $insobject->hello();  }} class object{  var $objectValue = "original";  function hello(){    echo $this->objectValue; //访问属性要这样  }}
object Object ( [objectValue] => Final ) Final

では、このように一般的に使用されない場合、今、test 内のテスト関数を外部から呼び出すにはどうすればよいですか

また、コンストラクターは、 __construct()?

コンストラクターの呼び出しは new と同じです
どちらもクラスのインスタンスを返します



外部変数は渡すかグローバル宣言なしでは内部的にアクセスできません (オブジェクトも変数をキャリアとして使用します)
これは PHP の構文です 基本的なルールそれを超えることはできません

$insobject = new object();$insobject->objectValue = "final";$instest = new test($insobject);//$instest->test(); 这是构造函数,一般不这样调用 class test{  var $testValue = "testValueins";  function test($insobject){    print_r($insobject);    $insobject->hello();  }} class object{  var $objectValue = "original";  function hello(){    echo $this->objectValue; //访问属性要这样  }}
object Object ( [objectValue] => Final ) Final

では、このように一般的に使用されない場合、今、test 内のテスト関数を外部から呼び出すにはどうすればよいですか

なお、コンストラクターは __construct ではありません()?

思い出した、php4の同名の関数はデフォルトでコンストラクタだった


?Finished?Only??You??Dude??、残念、

staticしか使えないみたい? ??変換の速度は速いように見えますが、何ができるでしょうか?

php5 も同様です



を渡すかグローバル宣言をしないと、内部で外部変数 (オブジェクトは変数をキャリアとしても使用します)
これは PHP 構文の基本ルールであり、これを超えることはできません

$insobject = new object();$insobject->objectValue = "final";$instest = new test($insobject);//$instest->test(); 这是构造函数,一般不这样调用 class test{  var $testValue = "testValueins";  function test($insobject){    print_r($insobject);    $insobject->hello();  }} class object{  var $objectValue = "original";  function hello(){    echo $this->objectValue; //访问属性要这样  }}
object Object ( [objectValue] => Final ) Final

それでは、test のテスト関数を外部から呼び出すにはどうすればよいですか? まあ、一般的にはこのように使われないのであれば

また、コンストラクターは __construct() ではないでしょうか?

思い出しました、php4の同名の関数はデフォルトでコンストラクターです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。