我在特别谈论可以应用于属性和方法的公共,私有和受保护的关键字。我到处都看过了,我知道它们的作用以及如何使用它们,但是看不出它们在编程时如何实用。有人可以解释或举一个例子吗?
最佳答案
封装(作用域)的主要目的是确保您编写的代码不会被破坏。这通常适用于范围,所以让我使用一个函数内部局部变量的简单示例:
function xyz ($x) {
$y = 1;
while ($y <= 10) {
$array[] = $y * $x;
$y++;
}
return $array;
}
该函数的目的是传递一个数字并返回一个数组。示例代码非常基本。为了使函数xyz()可靠,您需要确保每次都执行完全相同的操作。那么,如果有人能够从外部更改$ y或$ array的初始值怎么办?甚至$ x?如果能够从函数外部执行此操作,则无法再保证该函数返回的内容。
这就是作用域(封装)起作用的地方。这是一种设置边界,分配权限的方式,以确保变量(以及函数,属性,方法,对象)可以做什么和不可以做什么,以确保部分代码始终能够按预期执行操作。
以任何内置的php函数为例,例如... strtolower()或preg_match()或...以及其他任何东西。他们希望将参数传递给他们,并且他们返回特定的东西。内部有变量,循环等...以获取输入并吐出输出。如果您能够从外部更改这些内容,那么将无法保证strotolower()将返回您提供的小写字符串,这违背了拥有可重用代码块的目的。
当您为自己进行编程时,这并不一定有用,但是当您编写供许多人使用和共享的代码时,尤其是在使用涉及插件/插件等的代码时,这对于确保您的工作是无价的。代码会执行预期的操作,并以预期的方式进行访问/使用/调用。