ホームページ >バックエンド開発 >PHPチュートリアル >PHPのパッケージ化に関する問題

PHPのパッケージ化に関する問題

WBOY
WBOYオリジナル
2016-06-13 13:21:31798ブラウズ

PHP カプセル化の問題
[code=PHP][/code]
ユーザー クラスを定義します
class User{

private $arr;//外部使用からカプセル化します

function __construct(){
$this->arr = $this->get_data();//クラスがインスタンス化されるときにコンストラクターが実行されます
}

public function isNotExist(){
echo "存在しません
";
echo "";
}

プライベート関数 get_data(){
$arr=array(
array("name"=>"張三", "年齢"=>) ;12,"性別"=>"男性"),
array("名前"=>"李思","年齢"=>25,"性別"=>"男性"),
array("name"=>"王五","年齢"=>18,"性別"=>"男性"),
array("名前"=>"李李", "age"=>16,"sex"=>"女"),
array("name"=>"チェン・ミン","年齢"=>25,"性別 "=>"男性"),
array("name"=>"張暁","年齢"=>25,"性別"=>"女性"),
array(" name"=> "李明","年齢"=>15,"性別"=>"男性"),
array("名前"=>"趙良","年齢"=>25,"性別"=>"男性"),
array("名前"=>"張越","年齢"=>22,"性別"=>"男性"),
array(" name"=>"Wang Qing","age"=>21,"sex"=>"女性")
);
return $arr;
}


public function joinHtml($array){
if(count($array)==0){
User::isNotExist();
}
$d = 0;
$b ="

";
foreach($array as $t){
$d = $ d+1;
$a = "



";
$b = $b.$a;
}
$b = $b . "
".$d."
".$t['name'] "
".$t['年齢']."gt;".$t['性別']."
";
return $ b;

}
//以下は User クラスを継承しており、上記は変更できません。
class newUser extends User{



function get_both_sex_ages($sex, $age1,$age2){


}
上記で必要ですそのメソッドで $arr が呼び出されています。どうすればよいかわかりません。解決してください




-----解決策------ ---- ----------
派生クラスは基本クラス Private にアクセスできません。これは、派生クラスが使用するプライベート プロパティにアクセスするための public/protected インターフェイスを直接提供するか、プロパティが直接 protected に設定されるかのいずれかです。派生クラスのインターフェイスが直接アクセスできること。