PHP面向对象 抽象类 接口 常量学习

 

PHP抽象类的使用和定义

 

<?php 

 abstract class A {

   public $name;

   function fun(){

    echo $this->name;

   }

  abstract function cc($n,$nn=3);

 }

 class B extends A{

   function cc($m,$mm=7){

   echo "aaa";

   }

 }

 $b = new B;

 

?>

PHP面向对象 ,接口的定义使用

<?php 

 

   interface in_a{

    const NA=7;

const NB=9;

   function fun();

   function fun2();

   }

   

   interface in_b{

    function fun3();

   }

   class B{

    function cc(){

}

   }

   class A extends B implements in_a,in_b{

     function fun(){

}

function fun2(){

}

function fun3(){

}

   

   }

   

   $p=new A;

   

?>

 

两个例子:

 

抽象类的例子:

 

<?php 

 abstract class mysql{

    public $host;//主机地址

public $user;//用户名

public $passwd;

public $dbname;

public $charset;

 

function __construct($h,$u,$p,$d,$c){

 $this->host=$h;

 $this->user=$u;

 $this->passwd=$p;

 $this->dbname=$d;

 $this->charset=$c;

 $this->conn();

}

 

function conn(){

@mysql_connect($this->host,$this->user,$this->passwd) or die ("mysql连接失败");

@mysql_select_db($this->dbname) or die("数据库连接失败");

$this->q("set names '".$this->charset."'");

}

 

function q($n){

 return mysql_query($n);

}

 

function id(){

 return mysql_insert_id();

}

 

function f($n,$st=1){

 switch($st){

 case 1 :

 $rs=mysql_fetch_array($n);

 break;

 case 2 :

 $rs=mysql_fetch_row($n);

 break;

}

return $rs;

 }

//========================

/**

*说明:into插入数据库的方法

*参数:$tb表名,$val表示插入值,$st调试方式,1调试0不调试

*返回:int  

*/

   abstract function into($tb,$val,$st=0);

   

   /**

*说明:sel_once查询

*参数:

$tb表名,

$wh条件默认1,

$ar制定的字段,

$ty查询类型,默认下标和键名,

$st调试状态,默认为0,1调试0不调试

*返回:array [一维数组] 

*/

   abstract function sel_once($tb,$wh=1,$ar="*",$ty=1,$st=0);

 

   /**

*说明:sel_all查询

*参数:

$tb表名,

$wh条件默认1,

$ar制定的字段,

$ty查询类型,默认下标和键名,

$st调试状态,默认为0,1调试0不调试

*返回:array [二维数组] 

*/

   abstract function sel_all($tb,$wh=1,$ar="*",$ty=1,$st=0);

 

   /**

*说明:update更新数据库的方法

*参数:

$tb表名,

$val更新内容

$wh条件[1 limit 1],

$st调试方式默认0,1调试0不调试

*返回:int  

*/

   abstract function update($tb,$val,$wh="1 limit 1",$st=0);

 

   

   /**

*说明:del删除数据库的方法

*参数:

$tb表名,

$wh条件[1 limit 1],

$st调试方式默认0,1调试0不调试

*返回:int  

*/

   abstract function del($tb,$wh="1 limit 1",$st=0);

 

   

   

 

}

 

?>

 

接口的学习例子:

 

<?php 

 interface in_a{

   /**

   说明:登陆方法login

   参数:$user用户名,$passwd密码

   返回:bool [生成cookie]

   */

   function login($user,$passwd);

 }

 

  interface in_b{

   /**

   说明:checkLogin检查登陆

   参数:$n用户默认权限 1 可以指定不同页面用户不同权限

   返回:bool

   */

  function checkLogin($n=1);

 }

 

  interface in_c{

   /**

   说明:checkLoginTime检查登陆是否超时

   参数:$n是超时时间默认3600秒

   返回:bool

   */

  function checkLoginTime($n=3600);

 }

 

 //题目1要求:登陆页面要求使用in_a in_b接口

 //题目2要求:登陆后页面要求使用 in_b in_c接口

 

 

?>

时间: 2016-11-08

PHP面向对象 抽象类 接口 常量学习的相关文章

做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处

做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处 interface Animal{             //动物的接口    public void eat(Food food); //接口中只有抽象的方法和静态常量!这里void前面省略了abstract.同样,变量可以省略static final} class Cat implements Animal //一种动物类:猫  {      public void eat(Food food) //这里是对

php学习笔记 面向对象中[接口]与[多态性]的应用_php基础

复制代码 代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽

php 面向对象中接口 与多态性的用法

php教程 面向对象中接口 与多态性的用法 ,接口的方法名是show,继承接口的类中必须有show这个方法,要不然就会报错.也就是说接口的方法是假的,真正起作用的是在继承的类中的方法,就是因为这一点,所以我觉得,接口根php的抽象类有点像. <?php interface face1 {  const param = 'test';  public function show(); } class test implements face1 {  public function show()  

PHP入门教程之PHP变量与常量学习

上个月我专门介绍了PHP入门教程中关于PHP基本语法的入门学习,主要介绍了常用的几种PHP标记符,PHP语句的构成,PHP的注释等,今天的PHP入门教程我们主要学习PHP基本语法中PHP变量和常量的基础知识. 针对PHP变量入门学习,本篇入门教程分以下几部分介绍:PHP变量如何标识.PHP变量如何声明.如何给PHP变量赋值.PHP变量的类型介绍.常用PHP变量函数介绍. 针对PHP常量入门学习,主要介绍PHP常量的定义和使用方式. 一.PHP变量如何标识 所谓标识符,其实也就是PHP变量名,主要

PHP之变量、常量学习笔记

亲密接触PHP之变量.常量学习笔记(阅读笔记自PHP手册) PHP 中一个美元符号($)后面跟上一个变量名称,即表示一个变量.变量的名称是对大小写敏感的.其中变量名允许数字或下划线打头. 有关变量的传地址赋值 PHP 3 中,变量总是传值赋值.PHP 4 提供了另外一种方式给变量赋值:传地址赋值.使用传地址赋值,即简单地追加一个(&)符号到将要赋值的变量前(源变量).这意味着新的变量简单的引用了原始变量,改动新的变量将影响到原始变量,反之亦然. <?php$foo = ''Bob'';$ba

Java 接口常量反模式及定义 Java 常量的教程

初学 Java 的人很不经意间就会把常量定义在接口中,大概唯一的理由是接口不能实例化,而使用接口中定义的常量也是不用附着在实例上的.这主要还是 JDK 本身给我们做了很多这样的榜样, 如  java.io.ObjectStreamConstans,多是出现在 Enum 类型到来之前. 其实 Java 的接口常量是一种反模式,理由如下: 1. 接口是不能阻止被实现或继承的,也就是说子接口或实现中是能够覆盖掉常量的定义(重名),这样通过父,子接口(或实现) 去引用常量是可能不一致的2. 同样的,由于

java面向对象—抽象类、接口与多继承

有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一个分类或抽象概念,它的实例没有任何意义,因此不希望它能被实例化.例如:有一个父类" 水果(Fruit)",它有几个子类"苹果(Apple)"."橘子(Orange)"."香蕉(Banana)"等.水果在这里仅仅只是作为一个分类,显然水果的实例没有什么意义(就好像一个人如果告诉你他买了一些水果但是却不告诉你是苹果还是橘子,你很难想象他到底买的是什么.).而水果类又要能

c#接口和抽象类的对比学习

什么是接口? 接口就是一种规范,协议(*),约定好遵守某种规范就可以写通用的代码. 定义了一组具有各种功能的方法.接口描述的是一种能力,具有这种能力的事物可以没任何关系.比如: public interface  IFly{void fly();} 实现这个接口的可以是飞机,鸟等,他们都有飞的能力但没什么关系.而抽象类就不同了. 接口解决了类的多继承的问题 接口解决了类继承以后体积庞大的问题. 接口之间可以实现多继承 接口中的成员必须不能有实现(没实现说白了就是不能有大括号哦),接口不能实例化.

PHP5面向对象之接口技术详解

PHP5接口语法如下: 声明一个类的时候我们使用的关键字是"class",而接口一种特殊的类,使用的关键字是"interface"; 类的定义:class 类名{ - },接口的声明:interface 接口名{ -} 具体PHP5抽象类的代码如下:  代码如下 复制代码 abstract class AbstractClass {         abstract public function test();      }           class Imp