Değişken bir PHP sınıfı içinde kamu veya özel olup olmadığını nasıl anlarım?

2 Cevap

Ben sadece aramak için ne bilseydim PHP.net bu bulabiliriz eminim!

Temelde ben bir sınıf içinde tüm kamu değişkenler döngü çalışıyorum.

Şeyleri basitleştirmek için:

<?PHP 
class Person
{
  public $name = 'Fred';
  public $email = 'fred@example.com';
  private $password = 'sexylady';

  public function __construct()
  {
    foreach ($this as $key=>$val)
    {
      echo "$key is $val \n";
    }
  }
}

$fred = new Person; 

Sadece Fred adını ve e-posta göstermelidir ....

2 Cevap

Kullan Reflection. Ne istediğinizi elde etmek için PHP kılavuzda bir örnek modifiye ettik:

class Person
{
  public $name = 'Fred';
  public $email = 'fred@example.com';
  private $password = 'sexylady';

  public function __construct()
  {
    $reflect = new ReflectionObject($this);
    foreach ($reflect->getProperties(ReflectionProperty::IS_PUBLIC) as $prop) 
    {
      $propName = $prop->getName();
      echo $this->$propName . "\n";
    }
  }
}

http://php.net/manual/en/function.get-class-vars.php

Sen get_class_vars () işlevini kullanabilirsiniz:

<?php
class Person
{
    public $name = 'Fred';
    public $email = 'fred@example.com';
    private $password = 'sexylady';

    public function __construct()
    {
        $params = get_class_vars(__CLASS__);
        foreach ($params AS $key=>$val)
        {
            echo "$key is $val \n";
        }
    }
}
?>