PHP チュートリアル 5 では、変数の型は定義されていません。変数は、任意の型の数値、文字列、オブジェクト、リソースなどを指すことができます。 php5 のポリモーフィズムは変数であるとは言えません。
php5ではメソッドパラメータの型ヒント位置にポリモーフィズムが適用されているとしか言えません。
クラスのサブクラス オブジェクトは、現在の型を型ヒントとして使用して型要件を満たすことができます。このインターフェイスを実装するすべてのクラスは、インターフェイスの型を型ヒントとして使用してメソッド パラメーターの要件を満たすことができます。簡単に言えば、クラスはその親クラスの ID を持ち、実装されたインターフェイスはインターフェイスを実装することによって実現されます。次の例では、useradmin クラスの静的メソッドにはユーザー型パラメーターが必要です。
後の使用では、ユーザーインターフェイスを実装するnormaluserクラスのインスタンスが渡されます。コードは正常に実行されます。
public function getname();public function setname($_name);
public function getname(){
}
classnormaluserimplements user { // インターフェイスを実装するクラス
private $ name ;return $this->name;
$_user->setname($_username);
}
public function setname($_name){
$this->name = $_name;
}
}
class useradmin{ / / Operation.
public static function changeusername(user $_user,$_username){}
echo $normaluser->getname();
}
$normaluser = newnormaluser();
useradmin::changeusername($ Normaluser ,"tom");//ここで渡されるのは、normaluser のインスタンスです。?>
php インターフェイス クラス:interface実際、関数は非常に単純です。多くの人が一緒にプロジェクトを開発する場合、全員が他の人が作成したクラスを呼び出すことがあります。そのとき、特定の関数の実装メソッドに名前を付けるにはどうすればよいでしょうか?クラスが機能します。インターフェイス クラスを定義するときは、その中のメソッドを次のサブクラスで実装する必要があります。
コードは次のとおりです。 gid);public function sell($gid);
public function view($gid); ショップ インターフェイス クラスを宣言し、buy、sell、view、および継承の 3 つのメソッドを定義します。これら 3 つのメソッドのいずれかを実装する必要があります。サブクラスがこれらのメソッドを実装していない場合、サブクラスは機能しません。実際、インターフェイス クラスは、端的に言えば、クラスのテンプレートであり、クラスの規則です。このカテゴリに属する場合は、どのような方法であっても、私の規則に従わなければなりません。どうするかはあなた次第です。例:{
コードは次のとおりです:
class Baseshopimplements shop
{
public function buy($gid)echo('この ID で製品を購入しました: '.$gid.');
}public function sell($gid)
{echo('ID: '.$gid.') の商品を販売しましたfunction type();//Type
}
public function view($gid); )
{
echo('ID '.$gid.' の製品を表示します。');
}
}
以下は短縮されたメソッドです
interface myusbkou
{function action {
echo "- -->USB 2.0 ドライバーが必要"; }}class mp3implements myusbkou
{
function type()
{
echo "mp3 1.0 インターフェイス" ; function Action() - > mp3 1.0ドライバー< br/> "; $thing->action();
}
}
$p=new mp3();
$p->usbthing );
$p ->usbthing($zip)
?>