ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP チュートリアルから継承したアプリケーション

php_PHP チュートリアルから継承したアプリケーション

WBOY
WBOYオリジナル
2016-07-21 15:24:38840ブラウズ

このように、以前セッションクラスを公開して問題を解決するために、ログインによってユーザーレベルを設定することを考えました。 $session->get_status() の戻り値が 0 の場合、これは、私が現在のユーザーではないため、記事を削除したり編集したりする権限がないことを示しています。戻り値が 1 の場合は、ブロガー本人であることを示します。オーケー
、くだらない話はやめてください。まずコードに移動します


コードをコピーします コードは次のとおりです:
classoperationLimit
// ユーザーがログインしていない場合、またはこのユーザーではない場合の操作制限
{
/* はユーザーの操作を制限します。投稿時
* @ author:xiaoai 8.12 2011
*/
static $limitObject;
public function __construct() {}
// 関数を呼び出すが存在しない場合
public static function getObject()
{
if( !(self::$limitObjectinstanceofself))
self::$limitObject = 新しい self;
return self::$limitObject ;
}
public function getReadA($postName)
return ''.php' class='readmoreLink''
}
}
classoperationUnlimitextends OperationLimit
// このユーザーはいつですか
{
public static function getObject()
{
if( !(self::$limitObjectinstanceof self))
self::$limitObject = new self;
return self::$limitObject ;
}
public function getUpdateA($name)
{
return ''.php?do=update' id='' .$name.'' >update';
}
public function getDelectA($name)
{
return '.');' id='delectPOST' > ;delect';
}
}
class LimitFactory
{
public static function getLimitObject($userStatus)
// $userStatus = $session->get_status();スイッチ ( $userStatus )
{
ケース 0:
戻り操作Limit::getObject();
デフォルト:
戻り制限::getObject();



LimitFactory はファクトリ クラスであり、静的クラスでもあります。 つまり、オブジェクトを構築する必要はなく、受信したユーザー権限値に基づいて、operationLimit クラスのインスタンスを返すか、operationUnlimit クラスのインスタンスを返すかを決定するだけです。続きを読むなどの一般的な操作がいくつかあります。operationUnlimit クラスはこのメソッドを継承し、削除やリンクの更新などの新しいメソッドを作成します。
使用例



コードをコピー

コードは次のとおりです:

$limitObj = LimitFactory::getLimitObject($session->get_status());
echo $limitObj->getReadA('hi' );
echo $limitObj->getDelectA('hah');
関係のない話をしましょう、最初は、operationUnlimit クラスに getObject() 静的メソッドを記述していなかったことに気づきました。 OperationUnlimit::getObject(); 返されるのはスーパー クラスのオブジェクトですが、getObject() メソッドで self を使用して現在のクラスを表すのですが、スーパー クラスのオブジェクトであることを示すものはありません。クラスを返す必要があります。この静的メソッドがサブクラスでオーバーライドされる場合にのみ OK です。後で Google で調べたところ、コンパイラが最初に getObject メソッドをスーパークラスにバインドしているため、サブクラスでの呼び出しでは引き続きスーパークラス オブジェクトが返されることが漠然と理解できました。 また、文字列内のエスケープ文字が多すぎて区別するのが難しい場合は、代わりに echo <<続きを読む
これはかなり爽快です



http://www.bkjia.com/PHPjc/324294.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/324294.html

技術記事

このように、以前セッションクラスを公開して問題を解決するために、ログインによってユーザーレベルを設定することを考えました。 $session-get_status() の戻り値が 0 の場合、テーブルは次のようになります。 ...

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