php抽象类使用要点与注意事项分析

本文实例分析了php抽象类使用要点与注意事项。分享给大家供大家参考。具体分析如下:

php抽象类使用要点与注意事项如下:

1、用 abstract 来修饰一个类,那么这个类就是抽象类;抽象类绝对不能被实例化,即$abc = new 抽象类名();会报错。

2、用abstract 来修饰一个方法,那么该方法就是抽象方法;

3、如果类中有一个抽象方法,那么该类就必须定义为抽象类;但反过来,抽象类里并不一定要有抽象方法。另外,抽象类里也可以有普通方法。

4、抽象方法不能有方法体。即abstract function abc();------后面不能加大括号{.........}。

5、一个类继承了某个抽象类,那么,它必须实现抽象类中所有的抽象方法(除非,它也这些抽象方法声明为抽象的,相当于抽象类继承了抽象类)。

抽象类简单实例:

<?php
abstract class Animal{
 public $name;
 protected $price;
 abstract function cry();
}
class Dog extends Animal{
 function cry(){
 echo "汪汪...";
 }
}
$abc = new Animal();
?>

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • php代码架构的八点注意事项

    本文总结讲述了php代码架构的八点注意事项.分享给大家供大家参考,具体如下: 写代码写了6年多了,看看以前的架构,看看现在的架构.都有一些不足的地方.不管怎么样,都一直在改进.说实话不太喜欢用框架这类东西,基本上所有的框架都大同小异,差不了多少,要用话的,你还要去了解思想,目录结构,文件调用,文件命名,代码规范等,挺浪费时间的.构架能满足很大一部分的要求,满足的人越多性能越差,这也是我不喜欢用架构的一个主要原因.下面说一下,代码架构方面的一些心德. 一.面向对象为主,面向过程为辅 php4是面向

  • 基于php实现长连接的方法与注意事项的问题

    php可以通过set_time_limit(0);来取消php脚步超时限制,从而达到长连接的效果. 例子代码如下: 复制代码 代码如下: <?php echo "每隔3秒输出一次<br />"; set_time_limit(0); //保证php程序运行不超时退出 while(1) { echo date("H:i:s")."<br />"; ob_flush(); flush(); //刷新并输出PHP缓冲数据

  • ThinkPHP入口文件设置及相关注意事项分析

    本文实例分析了ThinkPHP入口文件设置及相关注意事项.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php  /*第一层意义:   *定义的是与thinkphp有关的核心框架文件目录路径,它可以通过这一个常量在以后运行的时候都去找这个路径,   *确保在以后运行过程中,绝对不会出现问题的(绝对不会对整个项目运行加载路径产生错误):   *第二层意义:   *做一个操作(放跳墙),是防止用直接访问我们的敏感文件,怎么避免呢,我就可以做一个页面包含整个   *敏感页面,用户的访问必

  • PHP使用静态方法的几个注意事项

    本文实例介绍了PHP使用静态方法的几个常见注意事项.分享给大家供大家参考.具体方法如下: 1. 即使类中的方法并未用static声明,但其未使用到可改变的类成员变量,在外部仍可用操作符::来调用: 2. 以静态方式(用::操作符)调用的方法中$this的取值是由调用时的上下文决定的!而不是定义他的类!! 例如以下的代码: <?php class TestClass1 { public $normal_v = 'normal_v from TestClass1'; public static $S

  • 基于PHP编程注意事项的小结

     1.php隐性的三元操作符(?:)优先级问题: 例1: 复制代码 代码如下: $person = $who or $person = "laruence"; //实际上是等同于: $person = empty($who)? "laruence" : $who; 例2 复制代码 代码如下: $arr = array(1=>1,3=>3):      $i = 2;      $a = 'test' . isset($arr[$i]) ? $arr[$i

  • php5.3 注意事项说明

    php5.3新特性1.支持命名空间(namespace)5.3以前 复制代码 代码如下: <?phpclass Zend_Db_Table_Select {//表示当前这个类文件位于Zend/Db/Table下} 5.3 复制代码 代码如下: <?phpnamespace Zend/Db/Tableclass Select {} 2.支持延迟静态绑定5.3以前(__CLASS__获得类名)self::who() 复制代码 代码如下: <?phpclass A {    public st

  • php数组合并array_merge()函数使用注意事项

    1.array_merge()合并 例子 $array = array('a'=>'bb'); $array2 = array('b'=>'cc'); $array3 = array_merge($array,$array2); 输出结果为 Array ( [a] => bb [b] => cc ) 上面因为都是数组就没有问题了,假如我们把$array 设置不是数组看看什么情况 $array = 1;//array('a'=>'bb'); $array2 = array('b

  • PHP开发注意事项总结

    1.使用内嵌的HTML代码,而不是PHP的echo语句. 因为PHP是一门嵌入式Web编程语言,可以将HTML代码和PHP代码相互嵌入.但是很多程序员担心在HTML代码中过多的使用""嵌入PHP代码会多次调用PHP解释器,从而降低了PHP代码的运行速度,所以宁愿使用PHP的echo语句来输出HTML代码,而不直接使用HTML代码.但事实却恰恰相反.每一个PHP页面只调用一次PHP解释器来解释所有的PHP代码,所以,只在需要时才嵌入PHP代码,而大多数的时候直接使用HTML代码输入结果,

  • PHP callback函数使用方法和注意事项

    在PHP中有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数.Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法. 一个 PHP 函数用函数名字符串来传递.您可以传递任何内建的或者用户自定义的函数,除了 array(), echo(), empty(), eval(), exit(), isset(), list(), print() 和 unset(). 一个对象的方法以数组的形式来传递,数组的

  • php抽象类使用要点与注意事项分析

    本文实例分析了php抽象类使用要点与注意事项.分享给大家供大家参考.具体分析如下: php抽象类使用要点与注意事项如下: 1.用 abstract 来修饰一个类,那么这个类就是抽象类:抽象类绝对不能被实例化,即$abc = new 抽象类名();会报错. 2.用abstract 来修饰一个方法,那么该方法就是抽象方法: 3.如果类中有一个抽象方法,那么该类就必须定义为抽象类:但反过来,抽象类里并不一定要有抽象方法.另外,抽象类里也可以有普通方法. 4.抽象方法不能有方法体.即abstract f

  • javascript的switch用法注意事项分析

    本文实例分析了javascript的switch用法注意事项.分享给大家供大家参考.具体分析如下: 先来看以下代码: <script> var t_jb51_net = 65; switch (t_jb51_net) { case '65': alert("字符串65.jb51.net"); break; } </script> 你会发现没有弹出对话框,alert没有执行. 原因分析: 这里需要明确的是,switch在判断的时候使用的是全等号"===&

  • JS使用eval解析JSON的注意事项分析

    本文较为详细的分析了JS使用eval解析JSON的注意事项.分享给大家供大家参考,具体如下: 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器 返回JSON形式的字符串的形式,对于利用JSONO

  • php中array_unshift()修改数组key注意事项分析

    本文实例分析了php中array_unshift()修改数组key注意事项.分享给大家供大家参考,具体如下: 众所周知,array_unshift()用来在数组的开头添加元素,但今天突然发现如果数组的键值是数字类型的(或能转成数字类型的),array_unshift()会修改所有键为数字的元素的Key,真是坑啊 实例: $a=array(111=>"dddddddddddd","112"=>array("one"=>"

  • ThinkPHP后台首页index使用frameset时的注意事项分析

    html的frameset标签在多窗口程序设计中有着广泛的应用,尤其是在项目后台页面部分.本文就来分析ThinkPHP后台首页index使用frameset时的注意事项.具体如下: 文件路径:aoli/admin/Lib/Action/IndexAction.class.php 代码如下: <?php class IndexAction extends Action{ public function index(){ $this->display(); } public function to

  • Android Service自启动注意事项分析

    本文实例分析了Android Service自启动注意事项.分享给大家供大家参考,具体如下: @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); if(intent == null) return; } @Override public void onDestroy() { super.onDestroy(); Intent intent = new Intent(

  • jQuery中inArray方法注意事项分析

    本文分析讲述了jQuery中inArray方法注意事项.分享给大家供大家参考,具体如下: jquery为web开发者提供了很大的便捷,本文写作的目地是提醒大家慎重jquery中的inArray方法. 大家都知道javascript是一种弱类型语言,对于数字类型和字符类型,可以随意切换(例如:1+""="1"),下面开始说主题: jquery的一个方法inArray(ele, array)是判断ele是否在array中存在,返回值是该元素第一次出现在数组array中的

  • python 函数的缺省参数使用注意事项分析

    本文实例讲述了python 函数的缺省参数使用注意事项.分享给大家供大家参考,具体如下: python的函数支持4种形式的参数:分别是必选参数. 缺省参数. 可变长参数.关键字参数:而且参数的书写顺序也是又一定规定的,顺序如下 def fun(param, default_params, arbitrary_params, keyword_param) 下面针对缺省型参数分析一些注意事项 先定义这样子一个函数 def test_fun(a=[]): a.append('a') print a i

  • PHP中抽象类和抽象方法概念与用法分析

    本文实例讲述了PHP中抽象类和抽象方法.分享给大家供大家参考,具体如下: 一.抽象关键字 :abstract 抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字. 二.抽象方法和抽象类的定义 一个类中至少有一个方法是抽象的,我们称之为抽象类.所以如果定义抽象类首先定义抽象方法. abstract class class1{ abstract function fun1(); -- } 1.类中至少有一个抽象方法 2.抽象方法不允许

随机推荐