仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2663|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP面向对象中类的承继的利用

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:40:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
兴趣可能会慢慢消亡,所以适当培养兴趣会激发自己无线的乐趣,有了乐趣,编程有啥难的。   PHP类的承继在PHP言语的进修中是一个对照主要的常识点。那末咱们该若何准确的进修PHP类的承继呢?在PHP面向对象编程里,类的承继永久是最关头的。
这就像人类生儿育女一样(为何必定要生儿育女呢,岂非就是为了防老!不得而知呀),你把本人的一些基因和你妻子的基因各拿出来一些,再生成一个新的个别,这个新的特性必定会包括你们两团体身上的特点,这就是生物上关于遗传(承继)的一个讲解。在编程的世界是这个遗传就是承继!
起首在懂得了承继的一些活生生的道理后,我想再来看PHP类的承继是否是不再那末奥秘。也许它原本就不奥秘,是由于咱们本人太庞杂了吧。要有承继就得有一个“本源”,这“本源”你能够想像你今后生了儿子或女儿,他们会从你这里失掉一些“器材(属性和办法)”,如许你的“儿女”就是持有你的(本源)一切一些特点了。上面经由过程语法来描写一下这个在PHP的面向对象中是怎样表达吧(不成能像人类那末直接啦,娶亲,过段工夫你的儿女就发生了)
1.发生“本源”类(父类或基类)
语法:class father{
}
1.发生“儿女”(子类)
语法:class son extends father{
}
申明:父类只是一个平凡的类,要想有儿女你只需求在平凡类后加一个extends关头字就OK了,如许你的子类只具有了父类一切的属性和办法了。其实就是这么复杂而已。
上面让咱们做点实践点工作吧,究竟PHP类的承继中界说一个父类和子类是要完成某个义务的吧!在这里这个义务对照单调,就拿人来讲,人着名字(属性),人要睡觉还要吃饭(办法)。咱们就用这个根基的义务要完本钱节的常识吧。
<?php   
class father{   
protected $name;   
function __construct($name){   
$this->name=$name;   
}   
function __destruct(){   
echo "<p>{$this->name}也是要逝世的<br/></p>";   
}   
//这个就是所谓的机关函数,用来初始化   
function go_to_sleeping(){   
echo "<p>{$this->name}想睡觉.</p>";   
}   
function eat(){   
echo "<p>{$this->name}想吃饭.</p>";   
}   
}   
class son extends father{   
function playing(){   
//小孩子会很油滑的,固然他也是要吃要睡的生物   
echo "<p>{$this->name}正在捣鬼...</p>";   
}   
}   
$your_father=new father("老爸");   
$your_father->go_to_sleeping();   
$your_father->eat();   
$my_son=new son('宝物');   
$my_son->go_to_sleeping();   
$my_son->eat();   
$my_son->playing();   
?>   
<?php  
class father{  
protected $name;  
function __construct($name){  
$this->name=$name;  
}  
function __destruct(){  
echo "<p>{$this->name}也是要逝世的<br/></p>";  
}  
//这个就是所谓的机关函数,用来初始化  
function go_to_sleeping(){  
echo "<p>{$this->name}想睡觉.</p>";  
}  
function eat(){  
echo "<p>{$this->name}想吃饭.</p>";  
}  
}  
class son extends father{  
function playing(){  
//小孩子会很油滑的,固然他也是要吃要睡的生物  
echo "<p>{$this->name}正在捣鬼...</p>";  
}  
}  
$your_father=new father("老爸");  
$your_father->go_to_sleeping();  
$your_father->eat();  
$my_son=new son('宝物');  
$my_son->go_to_sleeping();  
$my_son->eat();  
$my_son->playing();  
?>
解析:在咱们的第一个利用承继的典范里利用了PHP的机关函数中所提到的机关函数和PHP类的封装中的关头字,假如有甚么不分明的就去看看吧!我可不想再多说了,午时没想睡觉呀.说说这段小法式吧。
在类的father里,咱们界说了普通的特点,好比人的名字,人要吃饭和睡觉,然后在它的子类(儿女)咱们界说一个特性化的办法 (playing),究竟人与人之间是有分歧的中央吧。咱们利用机关函数来初始化这团体名,固然也利用了析构函数来“没落”失落对象,但你能够没有发明在子类里内是没有机关函数和析构函数的,所以子类是承继了父的一切办法,要否则你怎样能$my_son->go_to_sleeping();如许挪用呢,这就是PHP类的承继了。
文章援用自:http://club.topsage.com/thread-501298-1-1.html
<?php
class my_class{
var $username="小鸡";
var $num=10;
function yingxiaoji(){
    //利用类里的全局变量
$num=$this->num;
$username=$this->username;
echo "我养了".$num."条".$username;
}
function jiegou(){
    //利用类中的函数时,用this直接援用
    $this->yingxiaoji();
    echo "全都卖了";
}
}
//php类的承 extends暗示承继,然而php不答应同时承继多个基类
class my_class_extend extends my_class{
var $color="白色";
function mycolor(){
    $color=$this->color;
    $username=$this->username;
    echo ",这只".$username."是".$color;
}
}
$myname=new my_class(); //类的实例化
$myname->yingxiaoji();
echo "<br>";
//针对类中的变量从头赋值
$myname->username="小鸭子";
$myname->num="20";
$myname->yingxiaoji();
echo "<br>";
$myname->jiegou();
echo "<br>";
//初始化一个类的承继类
$myname_extend=new my_class_extend();
$myname_extend->jiegou();
$myname_extend->mycolor();
echo "<br>";
//因为是承继类,那末它的基类的属性全都有了,就能够直接给基类的变量传值
$myname_extend->username="小鸭子";
$myname_extend->num=100;
$myname_extend->color="黑色";
$myname_extend->jiegou();
$myname_extend->mycolor();
?>
<P style="TEXT-INDENT: 2em">
一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!
再现理想 该用户已被删除
沙发
发表于 2015-2-4 05:12:04 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
admin 该用户已被删除
板凳
发表于 2015-2-7 19:32:53 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-23 06:40:38 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
乐观 该用户已被删除
5#
发表于 2015-3-1 18:13:07 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
变相怪杰 该用户已被删除
6#
发表于 2015-3-10 21:41:38 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-17 10:51:52 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
深爱那片海 该用户已被删除
8#
 楼主| 发表于 2015-3-24 07:40:52 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
柔情似水 该用户已被删除
9#
发表于 2015-3-25 00:24:01 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
只想知道 该用户已被删除
10#
发表于 2015-3-26 16:42:38 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
不帅 该用户已被删除
11#
发表于 2015-4-1 06:11:27 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
兰色精灵 该用户已被删除
12#
发表于 2015-4-21 03:56:22 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
山那边是海 该用户已被删除
13#
发表于 2015-4-21 17:17:37 | 只看该作者
爱上php,他也会爱上你。
再见西城 该用户已被删除
14#
发表于 2015-4-27 21:15:09 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
莫相离 该用户已被删除
15#
发表于 2015-5-2 16:29:29 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
第二个灵魂 该用户已被删除
16#
发表于 2015-6-18 03:13:28 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
金色的骷髅 该用户已被删除
17#
发表于 2015-6-27 21:40:23 | 只看该作者
爱上php,他也会爱上你。
18#
发表于 2015-7-11 01:31:45 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
精灵巫婆 该用户已被删除
19#
发表于 2015-7-11 20:32:55 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
小魔女 该用户已被删除
20#
发表于 2015-7-11 23:37:20 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 21:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表