若仅可以在类内部调用,自己的子类也可以使用的方法,应该用哪种访问控制类型(1 分) A.public B.protected C.readonly D.private
时间: 2024-03-05 22:49:07 浏览: 74
正确答案是 B。
在 PHP 中,访问控制类型用于控制类的属性和方法的访问权限,包括 `public`、`protected` 和 `private` 三种类型。
`public` 类型的属性和方法可以被任何代码访问,没有访问限制;`protected` 类型的属性和方法可以在类内部和子类中访问,但不能在类外部访问;`private` 类型的属性和方法只能在类内部访问,不能在子类和类外部访问。
根据题意,需要定义一个在类内部和子类中可以访问的方法,但不能在类外部访问。因此,应该使用 `protected` 访问控制类型。
示例代码如下:
```php
class MyClass {
protected function myMethod() {
// 在类内部和子类中可以访问的方法
}
}
class MySubClass extends MyClass {
public function mySubMethod() {
// 子类中可以使用父类的 protected 方法
$this->myMethod();
}
}
$obj = new MyClass();
$obj->myMethod(); // 这里会报错,因为 myMethod 是 protected 类型,不能在类外部访问
```
在上面的示例代码中,我们定义了一个 `MyClass` 类和一个 `MySubClass` 子类,其中 `MyClass` 类中的 `myMethod` 方法是 `protected` 类型,可以在类内部和子类中访问,但不能在类外部访问。在子类中,可以使用 `$this->myMethod()` 的方式调用父类的 `myMethod` 方法。在类外部,不能直接访问 `myMethod` 方法,否则会报错。
阅读全文