PHP的类和方法
1. 课堂是什么?
可能有人会认为:“明明我都懂!”可是,一旦要解释,却无法给出好的回答。这就是一个物体的堆积(杂)。事实上,用一句话无法解释清楚,所以我们来具体描述吧。
2. 公共的
以下是基本类的定义。
<?php
class classTest
{
public function publicMethod(){
return 'Publicメッセージ';
}
private function privateMethod(){
return 'Privateメッセージ';
}
protected function protectedMethod(){
return 'Protectedメッセージ';
}
}
?>
<?php
require_once(__DIR__ . '/classTest.php');
$app = new classTest();
echo $app->publicMethod();
?>
公共的:可以从任何地方访问。
私有的:只能从同一类内部访问。
受保护的:可以从类本身和继承的类访问。
如果执行test_sample.php,应该会输出”Public消息”。
私人的 de)
那么在私人领域呢?
<?php
require_once(__DIR__ . '/classTest.php');
$app = new classTest();
echo $app->privateMethod();
?>
出现以下错误。
致命错误:调用私有方法〜
如果你添加了以下的方法,应该能够成功。
public function method(){
$message = $this->privateMethod();
return $message;
}
<?php
require_once(__DIR__ . '/classTest.php');
$app = new classTest();
echo $app->method();
?>
这样应该会输出“私人消息”。
4. 保护的
下面是关于受保护的话题。
它与上述的私有相同行为。
我们将讨论额外的话题。
让我们尝试从继承类中进行访问。
继承是指子类能够使用父类的处理方式。
现在,让我们创建一个子类并继承父类。
我会添加以下内容。
class childClass extends classTest
{
public function publicMethod(){
return '新Publicメッセージ';
}
public function method(){
$message = $this->publicMethod();
return $message;
}
}
<?php
require_once(__DIR__ . '/classTest.php');
$app = new childClass();
echo $app->method();
?>
如果在childClass和classTest中存在相同的方法,那么childClass的方法会被覆盖。
这个过程被称为方法重写。
在这种情况下,将输出”新Public消息”。
那么,我们回到刚才的话题。
从子类中调用一个受保护的方法。
class childClass extends classTest
{
public function method(){
$message = $this->protectedMethod();
return $message;
}
}
这样一来,应该会输出”Protected消息”。