Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
getter和setter在PHP中的工作原理_Php - Fatal编程技术网

getter和setter在PHP中的工作原理

getter和setter在PHP中的工作原理,php,Php,我需要知道getter和setter如何在PHP中工作。 因为有个面试官问了一个关于盖特和塞特的棘手问题。 我没有解释清楚。 有人能帮我吗?getter和setter在以后的阶段用于在开发人员请求或设置变量时提供逻辑 例如,如果您希望添加验证层以防止对象被误用。如果要确保person的$name变量是字符串变量而不是其他变量,该怎么办?我们可以简单地将该验证层添加到setter方法中: 在上面的PHP代码中,我们修改了setter方法setName,以便它验证$name变量。现在,如果程序员试图

我需要知道getter和setter如何在PHP中工作。 因为有个面试官问了一个关于盖特和塞特的棘手问题。 我没有解释清楚。
有人能帮我吗?

getter和setter在以后的阶段用于在开发人员请求或设置变量时提供逻辑

例如,如果您希望添加验证层以防止对象被误用。如果要确保person的$name变量是字符串变量而不是其他变量,该怎么办?我们可以简单地将该验证层添加到setter方法中:

在上面的PHP代码中,我们修改了setter方法setName,以便它验证$name变量。现在,如果程序员试图将$name变量设置为数组或布尔值,我们的函数将抛出异常。如果愿意,还可以确保$name变量不是空字符串


祝你面试好运

你到底想知道些什么?也许用一个简单的例子,它可以帮助你虽然这个链接可以回答这个问题,但最好在这里包括答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@米克:绝对正确!像这样更好?好多了。谢谢你的好公民身份。
//Set the person's name.
public function setName($name){
   if(!is_string($name)){
       throw new Exception('$name must be a string!');
   }
   $this->name = $name;
}