5

というエラーが表示されます

解析エラー: 構文エラー、6 行目の E:\PortableApps\xampp\htdocs\SN\AC\ACclass.php の予期しない T_PRIVATE

私のスクリプトを実行しようとしている間。私は PHP のクラスが初めてで、誰かが私のエラーを指摘できるかどうか疑問に思っていました。これがその部分のコードです。

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

    $ac = new ac();
4

3 に答える 3

15

関数/メソッドでクラス プロパティ (public/private/etc) を定義しません。クラスの本体でそれを行います。

class ac
{
    private $plain_username;
    private $md5_password;

    public function authentication()
    {
        $this->plain_username = $_POST['username'];
        $this->md5_password = md5($_POST['password']);
    }
}

//declare a class outside the class
$ac = new ac();

関数/メソッドで変数を定義する場合は、public/private/protected なしで宣言するだけです

$plain_username = $_POST['username'];
于 2010-03-22T21:58:09.440 に答える
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"]);
于 2010-03-22T21:56:04.340 に答える
1

public と private はクラス内の変数にのみ適用され、それ以外の場所は役に立ちません。関数から変数を要求することはできないため、public/private/protected として定義することはできません。関数内の変数には static しか適用できません(少なくとも、関数内の変数に適用したのはこれだけです)。

于 2010-03-22T22:00:24.610 に答える