ホームページ > バックエンド開発 > PHPチュートリアル > PHP では $this->$function() は何を意味しますか?

PHP では $this->$function() は何を意味しますか?

WBOY
リリース: 2016-06-23 14:18:27
オリジナル
1487 人が閲覧しました

親愛なる兄弟たち、私は最近 Tiantian Group Purchase のコードを見ていて、/modules/index.mod.php に次のコードを見つけました。

function ModuleObject( $config )	{		$this->MasterObject($config);		$runCode = Load::moduleCode($this);		$this->$runCode();	}
ログイン後にコピー

コードの 5 行目 これは PHP において特別な意味を持っていますか?私は PHP の正式なトレーニングを受けていないため、一般的に使用されないいくつかの基本的なルールを理解していません。先輩方にアドバイスをいただければ幸いです。


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

これはクラスです。コードはこれ以上です。投稿して見てください。

class ModuleObject extends MasterObject{	function ModuleObject( $config )	{		$this->MasterObject($config);		$runCode = Load::moduleCode($this);		$this->$runCode();	}	function Main()	{		$clientUser = get('u', 'int');		if ( $clientUser != '' )		{			handler('cookie')->setVar('finderid', $clientUser);			handler('cookie')->setVar('findtime', time());		}		$data = logic('product')->display();				$data || header('Location: '.rewrite('?mod=subscribe&code=mail'));		$product = $data['product'];		$this->Title = $data['mutiView'] ? '' : $product['name'];				include handler('template')->file($data['file']);	}	function ExpressConfirm()	{		$oid = $this->Get['id'];		$result = $this->OrderLogic->orderExpressConfirm($oid);		if ( $result )		{			$this->Messager(__('已经确认收货,本次交易完成!'), '?mod=me&code=order');		}		else		{			$this->Messager(__('无效的订单号!'), '?mod=me&code=order');		}	}}
ログイン後にコピー

これはクラスのコードです。親クラスとこのクラスを確認しましたが、関連する関数はありません

手動クラウド:

変数関数
PHP は変数関数の概念をサポートしています。これは、変数名の後に括弧がある場合、PHP は変数の値と同じ名前の関数を探し、それを実行しようとすることを意味します。

マニュアル クラウド:

変数関数
PHP は変数関数の概念をサポートしています。これは、変数名の後に括弧がある場合、PHP は変数の値と同じ名前の関数を探し、それを実行しようとすることを意味します。
先輩、検索ドメインに制限はありますか?例: 現在参照されているファイル内のすべての非クラス関数/現在参照されているファイル内のすべての非クラス内およびクラス メンバー関数/現在参照されているファイル内のすべてのクラス内静的関数/

$this-> runCode();
これはクラス内にある必要があります

class ModuleObject は MasterObject を拡張します
親クラスと public クラスに移動して見つけます
設定ファイル config.php (通常はこれと呼ばれます) に移動して確認してください 導入されたファイル

$ $ Runcode =load :: modulecode ($ this);

$ this- & gt; $ runco​​de ();
2 行目の $ runco​​de は 1 行目の $ runco​​de に関連していますか?

$runCode = Load::moduleCode($this)

$this->
これは発見されました。3階で述べたように、これは変数関数であり、最初の行の$runCodeによって返される文字列は関数名を表します。例:

    $func = 'Main';    $func();    function Main(){        echo "This is a variable function";    }
ログイン後にコピー

関数 Main が実行され、検索ドメインは、この変数が配置されるスコープ内に存在する必要がある非メンバー関数です。

は、実行クラスの

$runCode

関数です。


echo $runCode を確認できます

extends MasterObject の継承された親クラスはどこですか

?

phpの基本クラスですか?

マスターオブジェクトが見つかりません

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート