• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP面向对象构造函数说明

php 搞代码 4年前 (2022-01-23) 28次浏览 已收录 0个评论

本文不再赘述面向对象的知识,本文着重说明PHP的构造函数。
php类的构造函数可以是魔术魔方__construct() 也可以是和类同名的函数,实例如下:

<code><span><span>class</span><span>A</span>{</span><span>public</span><span><span>function</span><span>A</span><span>()</span>{</span><span>echo</span><span>'A is constructing...'</span>;    }  } <span><span>class</span><span>B</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>'B is contructing...'</span>;    } } <span>$a</span> = <span>new</span> A();   <span>// A is constructing...</span><span>$b</span> = <span>new</span> B();   <span>// B is constructing...</span></code>

此外,在继承时,应该注意的是:
子类可以不写构造函数,那么使用父类的构造函数

<code><span><span>class</span><span>A</span>{</span><span>protected</span><span>$name</span>;    <span>public</span><span><span>function</span><span>A</span><span>()</span>{</span><span>echo</span><span>'A is constructing...<br>'</span>;    }    <span>public</span><span><span>function</span><span>set_name</span><span>(<span>$name</span>)</span>{</span><span>$this</span>->name = <span>$name</span>;    }    <span>public</span><span><span>function</span><span>get_name</span><span>()</span>{</span><span>return</span><span>$this</span>->name;    } } <span><span>class</span><span>B</span><span>extends</span><span>A</span>{</span><span>/*    public function __construct(){        echo 'B is contructing...<br>';    }    */</span> } <span>//$a = new A();</span><span>$b</span> = <span>new</span> B();  <span>// A is constructing...</span><span>$b</span>->set_name(<span>'zhangsan'</span>); <span>echo</span><span>$b</span>->get_name();</code>

子类如果写了构造函数,那么不会再调用父类的构造函数了

<code><span><span>class</span><span>A</span>{</span><span>protected</span><span>$name</span>;    <span>public</span><span><span>function</span><span>A</span><span>()</span>{</span><span>echo</span><span>'A is constructing...<br>'</span>;    }    <span>public</span><span><span>function</span><span>set_name</span><span>(<span>$name</span>)</span>{</span><span>$this</span>->name = <span>$name</span>;    }    <span>public</span><span><span>function</span><span>get_name</span><span>()</span>{</span><span>return</span><span>$this</span>->name;    } } <span><span>class</span><span>B</span><span>extends</span><span>A</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>'B is contructing...<br>'</span>;    } } <span>//$a = new A();</span><span>$b</span> = <span>new</span> B(); <span>// just echo 'B is contructi<strong style="color:transparent">本文来源gaodai#ma#com搞@@代~&码*网/</strong><strong>搞gaodaima代码</strong>ng...'</span><span>$b</span>->set_name(<span>'zhangsan'</span>); <span>echo</span><span>$b</span>->get_name(); <span>// zhangsan</span></code>

父类的构造函数如果是私有的,可以被继承,但是子类必须有自己的构造函数,并且明确写出来

<code><span><span>class</span><span>A</span>{</span><span>protected</span><span>$name</span>;    <span>private</span><span><span>function</span><span>A</span><span>()</span>{</span><span>echo</span><span>'A is constructing...<br>'</span>;    }    <span>public</span><span><span>function</span><span>set_name</span><span>(<span>$name</span>)</span>{</span><span>$this</span>->name = <span>$name</span>;    }    <span>public</span><span><span>function</span><span>get_name</span><span>()</span>{</span><span>return</span><span>$this</span>->name;    } } <span><span>class</span><span>B</span><span>extends</span><span>A</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>'B is contructing...<br>'</span>;    } } <span>//$a = new A();</span><span>$b</span> = <span>new</span> B(); <span>// B is contructing...</span><span>$b</span>->set_name(<span>'zhangsan'</span>); <span>echo</span><span>$b</span>->get_name();  <span>// zhangsan</span></code>

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了PHP面向对象构造函数说明,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP面向对象构造函数说明
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址