类 讲继承,撇不开类,类一直是OOP中一非常重要的概念,在这个过度OOP的时代中,什么都得抽象成类,好像不抽象类就不会写代码了。所谓类,即一系列对象的总和,这系列对象有一样的属性和一样的方法。所谓方法,就是对象可以操作的行为:如可以吃、可以睡、可
类
讲继承,撇不开类,类一直是OOP中一非常重要的概念,在这个过度OOP的时代中,什么都得抽象成类,好像不抽象类就不会写代码了。所谓类,即一系列对象的总和,这系列对象有一样的属性和一样的方法。所谓方法,就是对象可以操作的行为:如可以吃、可以睡、可以计算等等。
<?php class Animal { public $weight = 0; public function eat() { echo "it's eating!"; } private function sleep(){ echo "it's sleeping!"; } } $a = new Animal; // 或 new Animal(); $a->weight = 20; $a->eat(); ?>
这里表达的是一个简单的动物类,它有属性“体重”,有方法“吃”,“睡”。这些属性和方法,是类内部可见,还是类内部也可见。就有 是外表上显而易见的,如手、脚、嘴、吃东西等,这些就是所谓public
和private
关键字。public
的;还有些外表上看不出来的,如心、肝、脾、心跳、消化等,这些就是所谓private
和protected
。至于,private
和protected
啥不一样,后面会讲。(modified 2014-5-1)
构造函数
我们可以按以下操作来实例化一个对象
<?php $a = new Animal; // 或 new Animal(); $a->weight = 20; ?>
但如果weight
只可以内部访问或者想简化操作呢?那牛人又设计了构造函数__construct
,这是一个特殊名字的方法。
<?php class Animal { private $weight = 0; public function($weight) { $this->weight = $weight; } public function eat() { echo "it's eating!"; } private function sleep(){ echo "it's sleeping!"; } } $a = new Animal(20); ?>
继承
有了类以后,在类与类之间找关系,继承就是一个明显的关系。所谓继承,不是简单的生物学中的基因继承,也不是经济学中的财产继承。它只是表达了一个概念,你有的我也有,你没有的我也有。与其说是继承,不如说是扩展。包括PHP中类及其继承关系在内的许多语言,都选择关键字extends
就是想很清楚地表达了这个概念它。派生关系可以用家族树来表达,确实就像继承。(modified 2014-5-1)
<?php class People extends Animal { // 类也是动物 protected $IQ = 0; public function think() {echo "it's thinking!";} } ?>
以上表达的就是人是继承了动物的方法“吃”,“睡”。但人不只“吃睡”,还会“思考”,所以还有智商“IQ”。那有些属性、方法不想被类外部访问,又想被继承它的类访问怎么办,好吧,再搞个 好吧,既然是继承,那我们来研究一下达尔文的进化和退化论。派生类于基类,多了新的属性或新的方法,即是进步;少了在基类中声明为protected
关键字好了。private
的属性和方法,即为退化。(modified 2014-5-1)
好吧,继承并不复杂,以上的public, protected等,我随便写的,没逻辑的。
抽象类
这节比较抽象,我们来讲故事吧!(modified 2014-5-1)
上帝在造万物时,想造生物,生物有生命会呼吸,然后好抽象,不懂造。(抽象基类,有抽象方法呼吸)
然后,上帝说,我们来造鸟,鸟是生物,有两只脚,有翅膀,会飞,用肺呼吸,羽毛什么颜色?长什么样子?好抽象,不会造。(派生抽象类)
上帝说,好吧,我们来造燕子,燕子是鸟,黑色毛,尾毛像剪刀。然后,捏完上色,好具体。(类)
然后,上帝用抽象到具体的方法,创造世界上最大的操作系统,Hello World!
<?php abstract class Life { abstract function breathing(); } abstract class Bird extends Life { $foots = array(); $wings = array(); function breathing() { echo "with lump!"; } abstract function feather(); function fly() { echo "flying!"; } } class Swallow Extends Bird () { $foots = array(); $wings = array(); function breathing() { echo "with lump!"; } abstract function feather() { echo "black and like a cicor!"} function fly() { echo "flying!"; } } ?>
静态方法、属性
从C/C 时代就想怎么去解释去解释这个静态两个字,这很计算机表达,因为他把变量和方法存在程序的静态区,所以叫静态变量和静态方法。我一直在想这东西在类中表达怎么跟现实中结合,让我们更好地去理解它然后更好地使用它。 OK。想想,有一个People类,关于人类有什么属性和什么操作跟一个人的生命没关系的?人类有多少人,生成身份ID。
<?php class People extends Animal { function eat() {echo "we'are eating tasty food!"} function __construct() { $this->ID = self::create_id(); // 内部调用静态属性/方法 } static $populace; // 静态属性,人口 static function() create_id { return microtime(); } // 静态方法,生成身份证 } echo "Populace: " . People::$populace; // 外部调用静态属性/方法 ?>
To be continue
由于明天还有重要的事,今天只讲到这里,这里只是热身,精彩的内容在后面。
( 完 )
版权所有:老白经 转载请保留来源信息。 >

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载
最流行的的开源编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。