欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php繼承的一個(gè)應(yīng)用

 更新時(shí)間:2011年09月06日 23:33:15   作者:  
正在嘗試自己寫一個(gè)博客系統(tǒng),想當(dāng)瀏覽文章的時(shí)候,有些操作是只有作者才有權(quán)限進(jìn)行,比如刪除,編輯更新文章。
這樣我
想到了繼承來解決,前面發(fā)表過一個(gè)會話類,這下簡單多了,通過登錄來設(shè)置用戶的級別,$session->get_status()的返回
值如果是0,則表明當(dāng)前用戶并不是博主,因此并不具有刪除,編輯文章的權(quán)限。如果是返回值是1,則表明是博主本人。好
了,廢話少扯。先上代碼
復(fù)制代碼 代碼如下:

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 '<a herf=\'http://foodstory.me/post/'.$postname.
'.php\' class=\'readmoreLink\'>readmore</a>';
}
}
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 '<a href=\'http://foodstory.me/post/'.$name.
'.php?do=update\' id=\''.$name.'\' >update</a>';
}
public function getDelectA($name)
{
return '<a href=\'javascript:delectPOST('.$name
.');\' id=\'delectPOST\' >delect</a>';
}
}
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是一個(gè)工廠類,兼靜態(tài)類。 即不需要構(gòu)造對象,它的職責(zé)只是根據(jù)傳入的用戶權(quán)限值,來判斷該返回 operationLimit類 還是 operationUnlimit類 的實(shí)例。
有一些共用的操作,比如閱讀更多,operationUnlimit類繼承了這個(gè)方法,而后又創(chuàng)造了一些新方法,比如返回刪除,更新鏈接的方法。
用法示例
復(fù)制代碼 代碼如下:

$limitObj = LimitFactory::getLimitObject($session->get_status());
echo $limitObj->getReadA('hi');
echo $limitObj->getDelectA('hah');

下面談點(diǎn)無關(guān)的,剛開始當(dāng)我沒有在operationUnlimit類中寫getObject() 靜態(tài)方法,發(fā)現(xiàn)調(diào)用
return operationUnlimit::getObject();
返回的卻是超類的對象,感覺奇怪,我在getObject();方法中用的是self來表示當(dāng)前的類,沒有指明一定要返回超類的對象啊。當(dāng)在子
類中重寫了這個(gè)靜態(tài)方法才OK。后來查了下google,依稀理解,編譯器在剛開始的時(shí)候就把getObject方法和超類綁定在一起,因此
在子類中的調(diào)用依然是返回超類對象。

還有,是否覺得字符串中那么多轉(zhuǎn)義符很難分辨,那么改用
echo <<<Eeeeeee
<a href='foodstory.me/post/{$name}.php' >read more</a>
Eeeeeee;
這樣清爽了很多

相關(guān)文章

  • PHPAnalysis中文分詞類詳解

    PHPAnalysis中文分詞類詳解

    PHPAnalysis是目前廣泛使用的中文分詞類,使用反向匹配模式分詞,因此兼容編碼更廣泛,現(xiàn)將其變量與常用函數(shù)詳解如下,需要的朋友可以參考下
    2014-06-06
  • php 中phar包的使用教程詳解

    php 中phar包的使用教程詳解

    下面這篇文章主要給大家介紹了關(guān)于PHP中phar包使用的相關(guān)資料,文中介紹的還是相對比較詳細(xì)的,需要的朋友們下面來一起看看吧。
    2018-10-10
  • php?ZipArchive解壓縮實(shí)現(xiàn)后臺管理升級問題詳解

    php?ZipArchive解壓縮實(shí)現(xiàn)后臺管理升級問題詳解

    php?ZipArchive可以說是php自帶的一個(gè)函數(shù)了,他可對對文件進(jìn)行壓縮與解壓縮處理,但是使用此類之前我們必須在php.ini中把extension=php_zip.dll前面的分號有沒有去掉,然后再重啟Apache這樣才能使用這個(gè)類庫
    2022-12-12
  • php表單提交程序的安全使用方法

    php表單提交程序的安全使用方法

    是對一個(gè)接收自由提交表單數(shù)據(jù)的文件進(jìn)行安全性分析,希望對各位有幫助。首先說明一下,代碼中的error()和succeed()是我自定義的函數(shù)
    2008-07-07
  • PHP基于array_unique實(shí)現(xiàn)二維數(shù)組去重

    PHP基于array_unique實(shí)現(xiàn)二維數(shù)組去重

    這篇文章主要介紹了PHP基于array_unique實(shí)現(xiàn)二維數(shù)組去重,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • php生成圖片驗(yàn)證碼的方法

    php生成圖片驗(yàn)證碼的方法

    驗(yàn)證碼是一種安全保護(hù)機(jī)制,在注冊時(shí)要求必須有人工操作進(jìn)行驗(yàn)證,圖片驗(yàn)證碼的實(shí)現(xiàn)十分簡單,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 詳解WordPress中添加和執(zhí)行動作的函數(shù)使用方法

    詳解WordPress中添加和執(zhí)行動作的函數(shù)使用方法

    這篇文章主要介紹了WordPress中添加和執(zhí)行動作的函數(shù)使用方法,分別講解了add_action()與do_action()的用法,需要的朋友可以參考下
    2015-12-12
  • 詳解PHP中時(shí)間處理類Carbon常用方法的使用

    詳解PHP中時(shí)間處理類Carbon常用方法的使用

    Carbon是php的日期處理類庫,繼承了PHP的Datetime類。本文為大家詳細(xì)介紹了Carbon中常用的一些方法的使用,感興趣的小伙伴可以了解一下
    2022-05-05
  • PHP使用token防止表單重復(fù)提交的方法

    PHP使用token防止表單重復(fù)提交的方法

    這篇文章主要介紹了PHP使用token防止表單重復(fù)提交的方法,通過生成一個(gè)加密后的隨機(jī)數(shù)存入session的token變量,同時(shí)將該值放入表單隱藏提交,達(dá)到防止表單重復(fù)提交的功能,需要的朋友可以參考下
    2016-04-04
  • PHP中echo和print的區(qū)別

    PHP中echo和print的區(qū)別

    這篇文章主要介紹了PHP中echo和print的區(qū)別,針對二者使用中常見的用法區(qū)別進(jìn)行了較為深入的總結(jié)與分析,需要的朋友可以參考下
    2014-08-08

最新評論