php访问修饰符怎么用
时间 : 2023-04-25 02:48:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在 PHP 中,有三种访问修饰符:

1. public(公共)

2. protected(受保护)

3. private(私有)

这些修饰符用于定义类的成员(属性或方法)在类的内部或外部的访问范围。

具体来说,public 成员可以从类的内部和外部进行访问,protected 成员只能在类内部和继承类中访问,而 private 成员则只能在类内部进行访问。

下面是一些示例:

class MyClass {

public $publicVar;

protected $protectedVar;

private $privateVar;

public function setProtectedVar($value) {

$this->protectedVar = $value;

}

public function setPrivateVar($value) {

$this->privateVar = $value;

}

}

$obj = new MyClass();

$obj->publicVar = "public"; // 可以在类的外部访问

$obj->setProtectedVar("protected"); // 可以在类内部和继承类中访问

$obj->setPrivateVar("private"); // 只能在类内部访问

在上面的示例中,$publicVar 是一个公共成员,可以在类的外部访问。$protectedVar 是一个受保护的成员,可以在类内部和继承类中访问。$privateVar 是一个私有成员,只能在类内部访问。

setProtectedVar() 方法是一个公共方法,因此可以从类的外部进行访问,但它是用来设置受保护成员 $protectedVar 的,这意味着只能在类内部和继承类中使用。同样,setPrivateVar() 方法也是一个公共方法,但它用于设置私有成员 $privateVar,因此只能在类内部使用。

需要注意的是,这些访问修饰符只适用于类的成员而不是类本身,因为类本身并不是成员。

在 PHP 中,访问修饰符用于控制类、对象、属性和方法的访问权限。PHP 提供了三种访问修饰符:public、protected 和 private。

1. public 访问修饰符

public 访问修饰符可以被类的任何地方访问,包括类内部、类外部和子类中。通常情况下,我们把对象属性和方法都声明为 public,因为这些属性和方法都是对外公开的。

示例:

```php

class Box {

public $length;

public $width;

public $height;

public function getVolume() {

return $this->length * $this->width * $this->height;

}

}

在上面示例中,Box 类中的 $length、$width 和 $height 属性以及 getVolume() 方法都被声明为 public,因此可以被其他类的对象访问。

2. protected 访问修饰符

protected 访问修饰符只能被类内部和子类中访问。子类中的 protected 属性和方法可以被子类本身和子类的实例访问,但不能被类外部的对象访问。

示例:

```php

class Person {

protected $name;

protected function sayHello() {

echo "Hello!";

}

}

class Employee extends Person {

public function setName($name) {

$this->name = $name;

}

public function getGreeting() {

$this->sayHello();

echo ", my name is " . $this->name;

}

}

在上面示例中,Person 类中的 $name 属性和 sayHello() 方法都被声明为 protected,因此 Employee 类可以继承 Person 类,并直接访问 $name 和 sayHello()。

3. private 访问修饰符

private 访问修饰符只能被类内部访问,子类和类外部的对象都不能访问。private 通常用来保护一些敏感的信息,防止被误用或被非法访问。

示例:

```php

class BankAccount {

private $balance;

public function deposit($amount) {

$this->balance += $amount;

}

public function withdraw($amount) {

if ($this->balance >= $amount) {

$this->balance -= $amount;

return $amount;

} else {

return 0;

}

}

}

在上面示例中,BankAccount 类中的 $balance 属性被声明为 private,外部对象不能直接访问该属性,只能通过 deposit() 和 withdraw() 方法进行操作。

总结:

PHP 访问修饰符可以控制类、对象、属性和方法的访问权限,包括 public、protected 和 private 三种修饰符。public 可以被类的任何地方访问;protected 只能被类内部和子类中访问;private 只能被类内部访问。正确使用访问修饰符,可以有效的保护类的数据和方法,提高程序的安全性。