空白函数如何在PHP中帮助我们
你好空白函数如何在PHP中帮助我们,php,function,methods,Php,Function,Methods,你好 我正在学习php,我在许多其他小项目中看到了许多空函数,我不知道它有什么帮助 例如: public function first(){ // do nothing } public function second(){ // do nothing } public function myfuntion(){ // Codes } 另一个例子: 类用户_bo{ protected $attribu
我正在学习php,我在许多其他小项目中看到了许多空函数,我不知道它有什么帮助 例如:
public function first(){
// do nothing
}
public function second(){
// do nothing
}
public function myfuntion(){
// Codes
}
另一个例子:
类用户_bo{
protected $attributes = Array();
public function __get($key){
return array_key_exists($key, $this->attributes) ? $this->attributes[$key] : null;
}
public function __set($key, $value){
$this->attributes[$key] = $value;
}
/** Constructor **/
public function __construct(){ }
}?>
在这种情况下,_construct()怎么能帮助我们呢,因为它看起来好像什么都没有做?空白函数可能还没有实现,可能被用作未来增强的占位符。我不确定我是否理解了您试图解释的内容,但有时它可以帮助很多人编写程序的一般大纲,只有在他们完成并编写了每个函数之后,才不会切断他们的思路
为了记住,他们需要编写该函数,他们创建了它,但将其保留为空。当然,函数的名称可能比“first”、“second”或“myfunction”更具描述性。Ahn,我猜您正在阅读“PHP中的函数”。在这里,作者解释了如何定义自己的和自定义的函数
<?php
function foobar() {
echo "Foobar";
}
?>
当你说空函数时,不仅仅是谈论构造和神奇的方法 例如,它们帮助我们确定行动授权的方式
public class MyClass
{
private function __construct(){}
}
这允许我们阻止newmyclass
调用,但可以通过调用静态方法并执行new self()
还有其他原因,如不允许继承,例如:
#Class 1
public function Base
{
public function start()
{
echo "hello";
}
}
#Class 2
public function Layer extends Base
{
}
#Class 3
public function Layer extends Base
{
private function start(){}
}
综上所述,类2包含一个名为start的可调用方法,但它是来自父级的方法,在类3中也会发生同样的情况,但它本身被本地方法覆盖,并且作为私有,它不允许调用该方法
再深入一点OOP,我们有一些接口告诉类它必须包含一组指定的方法,因此如果类实现了这样的接口,则需要定义所需的所有方法,否则它将抛出错误,因此程序员可能会创建空方法来保持类结构
根据您的新示例,除了扩展另一个类之外,没有任何特定的原因导致公共构造函数为空 下面是一个例子:
class Main
{
public function __construct()
{
echo "Main";
}
}
class FirstSub extends Main
{
}
class SecondSub extends Main
{
public function __construct()
{
echo "SecondSub";
}
}
class ThirdSub extends Main
{
public function __construct()
{
echo "ThirdSub <br />";
parent::__construct();
}
}
主类
{
公共函数构造()
{
回声“主”;
}
}
类FirstSub扩展了Main
{
}
类SecondSub扩展了Main
{
公共函数构造()
{
呼应“第二次分包”;
}
}
类ThirdSub扩展了Main
{
公共函数构造()
{
回音“第三个字母
”;
父项::_构造();
}
}
从结构中可以看出,我们有一个名为Main
的主类和三个子类
如果我们初始化主类,我们将得到构造函数printmain
,但是结果会随着子类的不同而变化,因为构造函数会覆盖父类
因此,初始化以下内容将导致:
- Main:
Main
- FirstSub:“`-什么都没有
- SecondSub:
SecondSub
- 第三个子集:
ThirdSub
Main
尽可能地使用空白构造对父类产生影响。您能给出一个真实的例子吗?您能指出您看到的资源吗?这个问题有点脱离上下文。它通常用于_示例$可能是这些函数体的实现是在扩展(继承)类中定义的,可能是一个类中的函数被嵌入,以便从扩展它的另一个类中被覆盖,你已经看到了。。。?从未见过有很多空函数被使用空间并不是很有限,你只需要创建一个单独的版本。如果你添加了几个你计划实现的方法,发布,然后决定不实现它们,你的版本中有很多垃圾,永远不会被使用,正如我说的,你只需要创建一个单独的版本