myclass.phpコールprivateまたはprotectedメソッドインクルードファイル
class myclass {
private $name;
public function showData(){
include_once "extension.php";
otherFunction($this);
}
private function display(){
echo "hello world!";
}
}
extension.php
function otherFunction($obj){
if(isset($obj){
$obj->display();
}
}
オクラホマので、これは問題ですが、あなたのいくつかのためにそれがあります明白な私は明らかにエラーをスローするインクルードファイルからプライベートメソッドを呼び出しています。私の質問は:
1.インクルードファイル は、外部の関数を使用して プライベートメソッドを呼び出すことはできますか?
2.どのように私は多くの機能を持つので 肥大化した私のクラスファイルを作成せずに アクセスプライベートメソッドにし、そう をやって別の のファイルに私の機能を拡張することで、インクルードファイルを使用することができますか?
3.これは可能ですか?
おかげ
問題はインクルードされたファイルではありません。問題は、クラススコープに含まれていない関数を呼び出すことです(インクルードされたファイルはそれ自身です)。 – NikiC
プライベートはプライベートです。あなたがクラス外でそれを呼び出す必要がある場合、それは公開されなければなりません。あるいは、それを保護して、 'otherFunction()'が属するサブクラスを拡張してください。 –
私は上記の両方のコメントに注意を払うことをお勧めします。 – Melsi