2010-03-22 54 views
4

使用私有變量,我得到的是說錯誤代碼,而試圖在功能

Parse error: syntax error, unexpected T_PRIVATE in E:\PortableApps\xampp\htdocs\SN\AC\ACclass.php on line 6

試圖運行我的腳本錯誤。我是PHP新手,想知道是否有人能指出我的錯誤。這是該部分的代碼。

<?php 
class ac 
    { 
    public function authentication() 
    { 
    private $plain_username = $_POST['username']; 
    private $md5_password = md5($_POST['password']); 

    $ac = new ac(); 

回答

14

你沒有定義的函數/方法的類屬性(公共/私營/等)。你在課堂上做到這一點。

class ac 
{ 
    private $plain_username; 
    private $md5_password; 
    public function authentication() 
    { 
     private $this->plain_username = $_POST['username']; 
     private $this->md5_password = md5($_POST['password']); 
    } 
} 
//declare a class outside the class 
$ac = new ac(); 

如果你想在一個函數/方法來定義變量,只是聲明他們沒有公共/私營/保護

$plain_username = $_POST['username']; 
3

您正在聲明方法中的private變量,這是不可能的。

如果你想ac有私有變量,你必須聲明它們的類定義:

class ac 
{ 

    private $plain_username = $_POST['username']; 
    private $md5_password = md5($_POST['password']); 

,並使用

public function authentication() 
{ 

echo $this->plain_username; 

順便訪問他們在類的方法,分配md5_password聲明將無法工作 - 你不能在類定義中使用的功能。

你將不得不做md5計算在類的構造函數,這將是無論如何做任務的更清潔的方式。在課堂上,添加:

function __construct ($plain_username, $password) 
{ 
    $this->plain_username = $plain_username; 
    $this->md5_password = md5 ($password); 
} 

然後初始化類:

$ac = new ac($_POST["username"], $_POST["password"]); 
1

公共及私有類中僅適用於變量,其他地方沒用。你不能從一個函數要求一個變量,因此它不能被界定爲公共/私營/保護。在函數內部變量只能有靜態應用了(至少這是我曾經應用於變量的函數裏面的唯一的事情)。