PHP:封装的目的是什么? - php

我在特别谈论可以应用于属性和方法的公共,私有和受保护的关键字。我到处都看过了,我知道它们的作用以及如何使用它们,但是看不出它们在编程时如何实用。有人可以解释或举一个例子吗?

参考方案

封装(作用域)的主要目的是确保您编写的代码不会被破坏。这通常适用于范围,所以让我使用一个函数内部局部变量的简单示例:

function xyz ($x) {
  $y = 1;
  while ($y <= 10) {
    $array[] = $y * $x;
    $y++;
  }
  return $array;
}

该函数的目的是传递一个数字并返回一个数组。示例代码非常基本。为了使函数xyz()可靠,您需要确保每次都执行完全相同的操作。那么,如果有人能够从外部更改$ y或$ array的初始值怎么办?甚至$ x?如果能够从函数外部执行此操作,则无法再保证该函数返回的内容。

这就是作用域(封装)起作用的地方。这是一种设置边界,分配权限的方式,以确保变量(以及函数,属性,方法,对象)可以做什么和不可以做什么,以确保部分代码始终能够按预期执行操作。

以任何内置的php函数为例,例如... strtolower()或preg_match()或...以及其他任何东西。他们希望将参数传递给他们,并且他们返回特定的东西。内部有变量,循环等...以获取输入并吐出输出。如果您能够从外部更改这些内容,那么将无法保证strotolower()将返回您提供的小写字符串,这违背了拥有可重用代码块的目的。

当您为自己进行编程时,这并不一定有用,但是当您编写供许多人使用和共享的代码时,尤其是在使用涉及插件/插件等的代码时,这对于确保您的工作是无价的。代码会执行预期的操作,并以预期的方式进行访问/使用/调用。

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP-如何建议搜索字词,“你是说……?” - php

当使用不检索任何结果的术语搜索数据库时,我想允许“您是不是……”建议(例如Google)。例如,如果有人寻找“ jquyer””,它将输出“ did you mean jquery?”当然,建议结果必须与数据库内部的值匹配(我正在使用mysql)。您知道可以做到这一点的图书馆吗?我已经用谷歌搜索过,但是没有找到任何好的结果。或者,也许您有一个想法,该如何独自…