php继承的一个应用_PHP
这样我
想到了继承来解决,前面发表过一个会话类,这下简单多了,通过登录来设置用户的级别,$session->get_status()的返回
值如果是0,则表明当前用户并不是博主,因此并不具有删除,编辑文章的权限。如果是返回值是1,则表明是博主本人。好
了,废话少扯。先上代码
复制代码 代码如下:
class operationLimit
// operating limit. When no user login or is not this user
{
/* for limit the user operat at post.
* @author:xiaoai 8.12 2011
*/
static $limitObject;
public function __construct() {}
// when call the function but does not exist
public static function getObject()
{
if( !(self::$limitObject instanceof self))
self::$limitObject = new self;
return self::$limitObject ;
}
protected function setLimit() {}
public function getReadA($postName)
{
return ''.php\' class=\'readmoreLink\'>readmore';
}
}
class operationUnlimit extends operationLimit
// when is this user
{
public static function getObject()
{
if( !(self::$limitObject instanceof 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();
{
switch ( $userStatus )
{
case 0:
return operationLimit::getObject();
case 1:
return operationUnlimit::getObject();
default:
return limit::getObject();
}
}
}
LimitFactory是一个工厂类,兼静态类。 即不需要构造对象,它的职责只是根据传入的用户权限值,来判断该返回 operationLimit类 还是 operationUnlimit类 的实例。
有一些共用的操作,比如阅读更多,operationUnlimit类继承了这个方法,而后又创造了一些新方法,比如返回删除,更新链接的方法。
用法示例
复制代码 代码如下:
$limitObj = LimitFactory::getLimitObject($session->get_status());
echo $limitObj->getReadA('hi');
echo $limitObj->getDelectA('hah');
下面谈点无关的,刚开始当我没有在operationUnlimit类中写getObject() 静态方法,发现调用
return operationUnlimit::getObject();
返回的却是超类的对象,感觉奇怪,我在getObject();方法中用的是self来表示当前的类,没有指明一定要返回超类的对象啊。当在子
类中重写了这个静态方法才OK。后来查了下google,依稀理解,编译器在刚开始的时候就把getObject方法和超类绑定在一起,因此
在子类中的调用依然是返回超类对象。
还有,是否觉得字符串中那么多转义符很难分辨,那么改用
echo read more
Eeeeeee;
这样清爽了很多

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Die PHP -Protokollierung ist für die Überwachung und Debugie von Webanwendungen von wesentlicher Bedeutung sowie für das Erfassen kritischer Ereignisse, Fehler und Laufzeitverhalten. Es bietet wertvolle Einblicke in die Systemleistung, hilft bei der Identifizierung von Problemen und unterstützt eine schnellere Fehlerbehebung

Die Speicher :: Download -Methode des Laravel -Frameworks bietet eine prägnante API für die sichere Bearbeitung von Datei -Downloads beim Verwalten von Abstraktionen des Dateispeichers. Hier ist ein Beispiel für die Verwendung von Storage :: download () im Beispiel -Controller:

Laravel vereinfacht die Handhabung der HTTP -Verb in eingehenden Anfragen, wodurch das vielfältige Betriebsmanagement innerhalb Ihrer Anwendungen optimiert wird. Die Methode () und IsMethod () -Methoden identifizieren und validieren Anforderungsarten effizient und validieren. Diese Funktion ist für den Bau von entscheidender Bedeutung
