spa*_*mud 2 php methods encapsulation properties
我在具体谈论可以应用于属性和方法的public,private和protected关键字.我到处寻找,我知道他们做了什么以及如何使用它们,但是在编程时看不出它们是如何实用的.有人可以解释或举例吗?
封装(范围)的主要目的是确保编写无法破解的代码.这一般适用于范围,所以让我在函数内部使用一个更简单的局部变量示例:
function xyz ($x) {
$y = 1;
while ($y <= 10) {
$array[] = $y * $x;
$y++;
}
return $array;
}
Run Code Online (Sandbox Code Playgroud)
此函数的目的是传递一个数字并返回一个数组.示例代码非常基本.为了使函数xyz()可靠,您需要保证每次都执行完全相同的操作.那么,如果某人有能力从外部改变$ y或$ array的初始值呢?甚至是$ x?如果您能够从函数外部执行此操作,则无法再保证该函数返回的内容.
这就是范围(封装)发挥作用的地方.这是一种设置边界,分配对变量(以及函数,属性,方法,对象)可以做什么和不可以做什么的权限的方法,以确保代码位总是完全按预期执行.
比如任何内置的php函数,比如... strtolower()或preg_match()或者......好吧.他们期望将参数传递给他们,并且他们返回特定的东西.在内部有变量,循环等...来获取输入并吐出输出.如果您能够从外部更改这些内容,则无法保证strotolower()将返回您提供的小写字符串,并且无法实现具有可重用代码块的目的.
当您为自己编程时,这并不一定非常有用,但当您编写代码供许多人使用和共享时,尤其是使用涉及插件/插件的代码等等时,这对于确保您的代码非常有用.代码执行它应该做的事情,并以预期的方式访问/使用/调用.