«
php面向过程与面向对象的简单比较

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  最近打开我以前做的一个项目,系统结构中使用了4个包含文件对登录用户的权限进行判断,属典型的面向过程写法,可能很多朋友以前都写过这样的代码。我把这些代码整理了一下,写成一个权限判断的简单类,以比较一个面各对象和面向过程之间的差异。</p><p>  代码如下(其中省略了部分代码)。</p><p>  sesson1.php</p><p>  <code><?php<br />/*<br />* 功能:取得用户的cookie,以判断用户是否已经登录,并是否具有系统管理员权限<br />* 程序员:xiangli<br />* 日期:2002-07-19<br />*/<br />$UserName = $HTTP_COOKIE_VARS['UserName1'];//用户名<br />if ( empty($UserName) || $HTTP_COOKIE_VARS['Level'] != 1 )<br />{<br />  
    header("Location: ../right.phtml");<br />}<br />?></code></p><p>  session2.php</p><p>  <code><?php<br />/*<br />* 功能:取得用户的cookie,以判断用户是否已经登录,并是否具有操作员权限<br />* 程序员:xiangli<br />* 日期:2001-07-19<br />*/<br />$UserName = $HTTP_COOKIE_VARS['UserName1'];//用户名<br />$Level = $HTTP_COOKIE_VARS['Level'];//权限级别<br />if ( empty($UserName) || $Level > 2 )<br />{<br />  
    header("Location: ../index.phtml");<br />}<br />?></code></p><p>  session3.php</p><p>  <code><?php<br />/*<br />* 功能:取得用户的cookie,以判断用户是否已经登录,用户是否具有普通用户权限<br />* 程序员:xiangli<br />* 日期:2001-07-19<br />*/<br />if ( empty($UserName1) || $Level > 3 )<br />{<br />  
    header("Location: ./right.phtml");<br />}<br />?></code></p>
<p> </p>

   <p>  session4.php</p><p>  <code><?php<br />/*<br />* 功能:取得用户的cookie,以判断用户是否已经登录,用户是否具有企业用户权限<br />* 程序员:xiangli<br />* 日期:2001-08-11<br />*/<br />if ( empty($_COOKIE['ClientName']) || $_COOKIE['Level'] != 4 )<br />{<br />  
    #header("Location: ../client_login.phtml");<br />}<br />?></code></p><p>  调用:</p><p>  <code><?<br />include_once("/lib/session1.php");<br />include_once("/lib/session2.php");<br />include_once("/lib/session3.php");<br />include_once("/lib/session4.php");<br />?></code></p><p>  合并后的权限判断类:</p><p>  sessionPower.php</p><p>  <code><?php<br />/**<br />* @功能:根据cookie的值判断用户是否已经登录及用户的权限<br />* @程序员:xiangli<br />* @日期:2002-12-20<br />*/<br />class sessionPower{<br />  
    var Username;//用户名<br />  
    var Level;//用户权力级别<br />         &#160;<br />  
    /**<br />  
    * 判断用户是否已经登录<br />  
    */<br />  
    function sessionPower()<br />  
    {<br />    
    $this->UserName = $HTTP_COOKIE_VARS['UserName'];//用户名<br />    
    $this->Level = $HTTP_COOKIE_VARS['Level'];//权限级别<br />    
    if ( $this->UserName == "" || $this->Level == "" )<br />    
    {<br />      
    header("Location: ../index.phtml");<br />    
    }<br />  
    }<br />         &#160;<br />  
    /**<br />  
    * 是否具有系统管理员权限<br />  
    */<br />  
    function adminPower()<br />  
    {<br />    
    if ( $HTTP_COOKIE_VARS['Level'] != 1 )<br />    
    {<br />      
    header("Location: ../right.phtml");<br />    
    }<br />  
    }<br />         &#160;<br />  
    /**<br />  
    * 是否具有操作员权限<br />  
    */<br />  
    function operatorPower()<br />  
    {<br />    
    if ( $this->Level > 2 )<br />    
    {<br />      
    header("Location: ../index.phtml");<br />    
    }<br />  
    }<br />         &#160;<br />  
    /**<br />  
    * 是否具有普通用户权限<br />  
    */<br />  
    function generalPower()<br />  
    {<br />    
    if ( $this->Level > 3 )<br />    
    {<br />      
    header("Location: ./right.phtml");<br />    
    }<br />  
    }<br />         &#160;<br />  
    /**<br />  
    * 用户是否具有企业用户权限<br />  
    */<br />  
    function enterprisePower()<br />  
    {<br />    
    if ( $this->Level != 4 )<br />    
    {<br />      
    #header("Location: ../client_login.phtml");<br />    
    }<br />  
    } &#160;<br />}<br />?></code></p></p><p>  调用:</p><p>  <code><?<br />include_once("/lib/sessionPower.php");<br />$sessionPower = new sessionPower();<br />$sessionPower->adminPower();<br />$sessionPower->operatorPower();<br />$sessionPower->generalPower();<br />$sessionPower->enterprisePower();<br />?></code></p><p>  注:如果使用面向对象编程,建议最好使用zend编辑器,这样开发效率会快出很多!</p></p>