欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-06-02 16:49:50
...
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面向对象 ,接口的定义使用

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;

?>

两个例子:

抽象类的例子:

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);

}

?>

接口的学习例子:

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接口

?>