面向過程與物件導向的簡單比較(個人心得)!

來源:互聯網
上載者:User
比較|對象|過程|心得 最近開啟我以前做的一個項目,系統結構中使用了4個包含檔案對登入使用者的許可權進行判斷,屬典型的面向過程寫法,可能很多朋友以前都寫過這樣的代碼。我把這些代碼整理了一下,寫成一個許可權判斷的簡單類,以比較一個面各對象和面向過程之間的差異。
代碼如下(其中省略了部分代碼)。

sesson1.php
<?php
/*
* 功能:取得使用者的cookie,以判斷使用者是否已經登入,並是否具有系統管理員許可權
* 程式員:xiangli
* 日期:2002-07-19
*/

$UserName = $HTTP_COOKIE_VARS['UserName1'];//使用者名稱
if ( empty($UserName) || $HTTP_COOKIE_VARS['Level'] != 1 )
{
    header("Location: ../right.phtml");
}
?>

session2.php
<?php
/*
* 功能:取得使用者的cookie,以判斷使用者是否已經登入,並是否具有操作員許可權
* 程式員:xiangli
* 日期:2001-07-19
*/

$UserName = $HTTP_COOKIE_VARS['UserName1'];//使用者名稱
$Level = $HTTP_COOKIE_VARS['Level'];//權限等級

if ( empty($UserName) || $Level > 2 )
{
    header("Location: ../index.phtml");
}
?>

session3.php
<?php
/*
* 功能:取得使用者的cookie,以判斷使用者是否已經登入,使用者是否具有普通使用者權限
* 程式員:xiangli
* 日期:2001-07-19
*/

if ( empty($UserName1) || $Level > 3 )
{
    header("Location: ./right.phtml");
}
?>

session4.php
<?php
/*
* 功能:取得使用者的cookie,以判斷使用者是否已經登入,使用者是否具有企業使用者許可權
* 程式員:xiangli
* 日期:2001-08-11
*/

if ( empty($_COOKIE['ClientName']) || $_COOKIE['Level'] != 4 )
{
    #header("Location: ../client_login.phtml");
}
?>

調用:
<?
include_once("/lib/session1.php");
include_once("/lib/session2.php");
include_once("/lib/session3.php");
include_once("/lib/session4.php");
?>

合并後的許可權判斷類:
sessionPower.php
<?php
/**
* @功能:根據cookie的值判斷使用者是否已經登入及使用者的許可權
* @程式員:xiangli
* @日期:2002-12-20
*/

class sessionPower{
    var Username;//使用者名稱
    var Level;//使用者權力層級
    
    /**
    * 判斷使用者是否已經登入
    */
    function sessionPower()
    {
        $this->UserName = $HTTP_COOKIE_VARS['UserName'];//使用者名稱
        $this->Level = $HTTP_COOKIE_VARS['Level'];//權限等級

        if ( $this->UserName == "" || $this->Level == "" )
        {
            header("Location: ../index.phtml");
        }
    }
    
    /**
    * 是否具有系統管理員許可權
    */
    function adminPower()
    {
        if ( $HTTP_COOKIE_VARS['Level'] != 1 )
        {
            header("Location: ../right.phtml");
        }
    }
    
    /**
    * 是否具有操作員許可權
    */
    function operatorPower()
    {
        if ( $this->Level > 2 )
        {
            header("Location: ../index.phtml");
        }
    }
    
    /**
    * 是否具有普通使用者權限
    */
    function generalPower()
    {
        if ( $this->Level > 3 )
        {
            header("Location: ./right.phtml");
        }
    }
    
    /**
    * 使用者是否具有企業使用者許可權
    */
    function enterprisePower()
    {
        if ( $this->Level != 4 )
        {
            #header("Location: ../client_login.phtml");
        }
    }    
}
?>

調用:
<?
include_once("/lib/sessionPower.php");
$sessionPower = new sessionPower();
$sessionPower->adminPower();
$sessionPower->operatorPower();
$sessionPower->generalPower();
$sessionPower->enterprisePower();
?>

註:如果使用物件導向編程,建議最好使用zend編輯器,這樣開發效率會快出很多!

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。