ホームページ  >  記事  >  php教程  >  PHP オブジェクト指向抽象クラス インターフェイスの定数学習

PHP オブジェクト指向抽象クラス インターフェイスの定数学習

WBOY
WBOYオリジナル
2016-06-21 08:51:021182ブラウズ

PHP 抽象クラスの使用と定義

抽象クラス A {

パブリック $name;

関数 fun(){

echo $this->name;

}

抽象関数 cc($n,$nn=3);

}

クラス B は A を拡張します{

関数 cc($m,$mm=7){

echo "aaa";

}

}

$b = 新しい B;

?>

PHP はオブジェクト指向であり、インターフェイスは

を使用して定義されます。

インターフェース in_a{

const NA=7;

const NB=9;

関数 fun();

関数 fun2();

}

インターフェイス in_b{

関数 fun3();

}

クラス B{

関数 cc(){

}

}

クラス A は B を拡張し、in_a,in_b{

を実装します

関数 fun(){

}

関数 fun2(){

}

関数 fun3(){

}

}

$p=新しいA;

?>

2 つの例:

抽象クラスの例:

抽象クラス mysql{

パブリック $host;//ホスト アドレス

public $user;//ユーザー名

パブリック $passwd;

パブリック $dbname;

パブリック $charset;

function __construct($h,$u,$p,$d,$c){

$this->host=$h;

$this->user=$u;

$this->passwd=$p;

$this->dbname=$d;

$this->charset=$c;

$this->conn();

}

関数 conn(){

@mysql_connect($this->host,$this->user,$this->passwd) または die ("mysql 接続に失敗しました");

@mysql_select_db($this->dbname) または die("データベース接続に失敗しました");

$this->q("セット名 '".$this->charset."'");

}

関数 q($n){

return mysql_query($n);

}

関数 id(){

return mysql_insert_id();

}

関数 f($n,$st=1){

スイッチ($st){

ケース 1 :

$rs=mysql_fetch_array($n);

休憩;

ケース 2 :

$rs=mysql_fetch_row($n);

休憩;

}

$rs を返します;

}

//========================

/**

*説明: データベースへの挿入方法

*パラメータ: $tb テーブル名、$val は挿入された値を表します、$st デバッグ モード、1 デバッグ 0 非デバッグ

*戻り値: int

*/

抽象関数 into($tb,$val,$st=0);

/**

*説明: sel_once クエリ

*パラメータ:

$tb テーブル名、

$wh 条件のデフォルトは 1、

$ar,

で指定されたフィールド

$ty クエリ タイプ、デフォルトの添え字とキー名、

$st デバッグ ステータス、デフォルトは 0、1 はデバッグ中、0 はデバッグ中でない

*戻り値: 配列 [1 次元配列]

*/

抽象関数 sel_once($tb,$wh=1,$ar="*",$ty=1,$st=0);

/**

*説明: sel_all クエリ

*パラメータ:

$tb テーブル名、

$wh 条件のデフォルトは 1、

$ar,

で指定されたフィールド

$ty クエリ タイプ、デフォルトの添え字とキー名、

$st デバッグ ステータス、デフォルトは 0、1 はデバッグ中、0 はデバッグ中でない

*戻り値: 配列 [2次元配列]

*/

抽象関数 sel_all($tb,$wh=1,$ar="*",$ty=1,$st=0);

/**

*説明: データベースを更新するための update メソッド

*パラメータ:

$tb テーブル名、

$val コンテンツ更新

$wh 条件 [1 制限 1]、

$st デバッグ モードのデフォルトは 0、1 はデバッグ、0 はデバッグしない

*戻り値: int

*/

抽象関数 update($tb,$val,$wh="1 制限 1",$st=0);

/**

*説明: del deleteデータベースメソッド

*パラメータ:

$tb テーブル名、

$wh 条件 [1 制限 1]、

$st デバッグ モードのデフォルトは 0、1 はデバッグ、0 はデバッグしない

*戻り値: int

*/

抽象関数 del($tb,$wh="1 制限 1",$st=0);

}

?>

インターフェース学習の例:

インターフェース in_a{

/**

説明: ログインメソッドlogin

パラメータ: $user ユーザー名、$passwd パスワード

戻り値: bool [Cookie を生成]

​*/

関数ログイン($user,$passwd);

}

インターフェイス in_b{

/**

説明: checkLogin ログインをチェック

パラメータ: $n ユーザーのデフォルト権限 1 は、異なるページのユーザーに異なる権限を指定できます

戻り値: bool

​*/

関数 checkLogin($n=1);

}

インターフェイス in_c{

/**

説明: checkLoginTime は、ログインがタイムアウトしたかどうかを確認します

パラメータ: $n はタイムアウト時間で、デフォルトは 3600 秒です

戻り値: bool

​*/

function checkLoginTime($n=3600);

}

//質問 1 の要件: ログイン ページでは in_a in_b インターフェイスの使用が必要です

//質問 2 の要件: ログイン後、ページでは in_b in_c インターフェイスの使用が必要です

?>



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。