Hata kodu bir fonksiyon özel değişkenleri kullanmaya çalışırken [kapalı]

3 Cevap php

Ben diyor bir hata alıyorum

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

Benim komut dosyasını çalıştırmak için çalışırken. PHP sınıfları için yeni ve birisi benim hata işaret olabilir merak ediyorum. İşte o bölümü için kod.

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

    $ac = new ac();

3 Cevap

Sen işlevleri / yöntemleri Sınıf özelliklerini (kamu / özel / etc) tanımlamaz. Sen sınıf gövdesinde bunu.

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();

Eğer bir işlev / yöntem değişkenleri tanımlamak istiyorsanız, sadece kamu / özel / korumalı olmadan bunları yayınlama

$plain_username = $_POST['username'];

Sen mümkün olmayan, bir yöntem içinde bir private değişkeni ilan ediyoruz.

Eğer ac özel değişkenlere sahip olmak istiyorsanız, sınıf tanımında bunları beyan etmek zorunda olacaktır:

class ac
{

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

ve kullanan sınıfın yöntemleri bunları erişmek

public function authentication()
{

 echo $this->plain_username;

Bu arada, atama ifadesi md5_password çalışmaz - Eğer sınıf tanımları işlevlerini kullanamazsınız.

Zaten atamalarını yapmak için temizleyici bir yolu olacaktır sınıf oluşturucu md5 hesaplama yapmak gerekir. Sınıfında, ekleyin:

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

ve daha sonra sınıf başlatmak:

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

Kamu ve özel, sadece başka bir yerde, bir sınıf içindeki değişkenlere uygulanır işe yaramaz. Bu nedenle korumalı / özel / kamusal olarak tanımlanamaz, bir işlevin bir değer talep edemez. Bir işlev içinde değişkenleri sadece statik (en azından ben hiç bir işlev içinde bir değişkene uyguladığınız tek şey) kendilerine uygulanan olabilir.