2017-05-16 9 views
0

コントローラ内で関数をプライベートにすると、ブラウザのURLでアクセスすることはできません。 私はドキュメンテーションとそれ以上のことは何も読んでいません。それについてもインターネット上で見つけることはできません。CodeIgniter - プライベート関数へのアクセス?

質問があります。 プライベート機能に直接URLでアクセスすることはできません。 どうすればアクセスできますか? それらにアクセスするには? プライベート機能の使い方...?

+2

フレームワークの使用を開始する前に、言語を学ぶ必要があります。 –

+0

プライベート関数には、クラスワイドスコープがあります。プライベート関数が存在するクラス内の他の関数内またはそのクラス内の他の関数から関数を呼び出すことができます。 – coderodour

+0

他の関数の中で同じクラスの関数を使用する理由は何ですか?それはどうやって私たちを助けますか?それを使用する良い状況は何ですか? –

答えて

1

コントローラ内で$thisを使用すると、この機能にアクセスできます。

class T1 extends CI_Controller{ 

public function fun1() 
{ 
    echo $this->fun2(5,6); 
} 
private function fun2($x,$y) 
{ 
    return $x+$y; 
} 
} 

Output: 
URL: http://localhost/myproject/t1/fun1 
11 
+0

同じコントローラ内の他の機能で使用されているコントローラ内の機能を使用する理由は?この種の関数(fun2)はモデルの中にあるべきではありませんか?特に、この種のcalc(x + y)は、モデルなしでもfun1で実行できます。 –

+0

@AdriannoBarelloこれは単なる例であり、リアルタイム状況とのリンクはありません。 –

+0

さて、この方法を使用するにはリアルタイムの状況がありますか?使用するのが快適か/推奨されるのか、mmmm .... –

0

その良い質問あなたはプライベートそれを定義する必要がありますなぜそれがアクセス可能である場合は、この方法をしたいですか、なぜメソッドはアクセスできない場合、あなたは正しいです。 これはあなたのPHPの知識とは関係ありません。

これらのメソッドは、同じクラス内の別のメソッドから呼び出すことができます。実際の使用法は、別のメソッドでセッション変数をチェックした後に呼び出すことができます。たとえば、ユーザーがログインしたときにのみメソッドが呼び出されます。これは呼び出しメソッドでコードの簡潔さを提供します。 あなたはそれをプライベートにしないと、ログインせずに直接アクセスすることができます

関連する問題