c语言编程笔录

首页 >   > 笔记大全

笔记大全

php成员里有哪些属性

更新时间:2023-11-11
为了回答这个问题,首先我们需要了解什么是成员属性。在PHP中,成员属性指的是类中的变量,它们是对象的状态的存储器。它们可以是公共的、私有的或受保护的。在这篇文章中,我们将探讨PHP类成员属性的几种不同类型和它们的用途。 1. 公共属性 公共属性是可以在类内外部被访问的。如果你想创建一个可以被其他类访问的属性,你应该使用公共属性。以下是一个例子:

公共属性示例

class Person {
  public $name;
  public $age;

  function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }
}

$person = new Person("Tom", 25);
echo $person->name;
在这个例子中,我们创建了一个名为Person的类,并定义了两个公共属性:$name和$age。我们使用了构造函数来初始化这些属性。在创建一个新的Person对象后,我们可以读取这些属性。 2. 私有属性 私有属性只能在类内部访问。如果你想限制属性的访问级别,你应该使用私有属性。以下是一个例子:

私有属性示例

class BankAccount {
  private $balance;

  function __construct($balance) {
    $this->balance = $balance;
  }

  public function getBalance() {
    return $this->balance;
  }

  public function deposit($amount) {
    $this->balance += $amount;
  }

  public function withdraw($amount) {
    if ($amount > $this->balance) {
      throw new Exception("Insufficient balance");
    }
    $this->balance -= $amount;
  }
}

$account = new BankAccount(1000);
echo $account->getBalance();
$account->deposit(500);
echo $account->getBalance();
$account->withdraw(200);
echo $account->getBalance();
在这个例子中,我们创建了一个名为BankAccount的类,并定义了一个私有属性$balance。我们使用了构造函数来初始化这个属性,并定义了公共的getBalance、deposit和withdraw方法来操作它。因为$balance是一个私有属性,我们不能从类的外部直接访问它,所以我们使用了公共的getBalance方法来读取它。 3. 受保护的属性 受保护的属性只能在类内部和子类中访问。这种类型的属性通常用于在类继承中,以允许子类访问父类的属性。以下是一个例子:

受保护的属性示例

class Animal {
  protected $name;

  function __construct($name) {
    $this->name = $name;
  }
}

class Dog extends Animal {
  public function bark() {
    echo "Woof! My name is " . $this->name;
  }
}

$dog = new Dog("Buddy");
$dog->bark();
在这个例子中,我们创建了一个名为Animal的类,并定义了一个受保护的属性$name。我们还创建了一个名为Dog的类,它扩展了Animal类。在Dog类中,我们创建了一个公共的方法bark,它可以读取父类的受保护属性$name,并使用它来生成一些输出。 4. 静态属性 静态属性是属于类本身的,而不是属于类的实例。每个对象实例都可以访问一个共享的静态属性。以下是一个例子:

静态属性示例

class Counter {
  public static $count = 0;
  
  function __construct() {
    self::$count++;
  }
}

$counter1 = new Counter();
echo Counter::$count;

$counter2 = new Counter();
echo Counter::$count;

$counter3 = new Counter();
echo Counter::$count;
在这个例子中,我们创建了一个名为Counter的类,并定义了一个静态属性$count。我们使用了构造函数来自增这个值,即每次创建一个新的Counter对象时,$count都会增加1。由于$count是一个静态属性,我们可以直接从类名中访问它,而不需要创建一个类的实例。在这个例子中,我们创建了三个Counter对象,每个对象都会递增$count的值。 总结: 在这篇文章中,我们讨论了PHP类成员属性的不同类型和它们的用途。公共属性是可以在类内外部被访问的,私有属性只能在类内部访问,受保护的属性只能在类内部和子类中访问,而静态属性是属于类本身的,而不是属于类的实例。这些属性类型有助于构建复杂的应用程序,并在不同的对象之间共享数据。理解它们的用途和适当的使用方式对于编写可靠、可扩展的代码至关重要。