`
dexter_leslie
  • 浏览: 65027 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论
  • marrymyy: 楼主总结的很好,学习了,就是代码怎么都没有空格断开,看着很不爽 ...
    interceptor

PHP类继承

    博客分类:
  • PHP
阅读更多

<?php
class ClsPerson
{
 var $personID;
 var $personName;
 function ClsPerson($personID,$personName)
 {
  //$this->personID=$personID;
  //$this->personName=$personName;
  echo "<script language=\"javascript\">window.alert('ClsPerson');</script>";
 }
}

class ClsStudent extends ClsPerson
{
 var $cardID;
 function ClsStudent($personID ,$personName,$cardID)
 {
  parent::ClsPerson($personID,$personName);
  echo "<script language=\"javascript\">window.alert('ClsStudent');</script>";
 }
}

$student = new ClsStudent("3234","DEXTERLESLIE","440402");
?>

 

 

 

 

 

 

 

 

 

 

 

 

打算使用一个很简单的实际例子演示PHP的简单面向对象
在实际编写Web时候,我们经常遇到 <input type=”….” Value=”…”…./>,似乎我们都比较讨厌这些重复性的东西,那么我们可以尝试把这些具有共同特征的东西封装好,然后传入动态变化的参数就可以重复使用了,并且这重复性的东西完全可以按照实际开发应用过程中的实际情况进行适当的调整。
现在设想,我设计一个很丑陋的基类 ClsField,就是所有表单域的基类,然后根据需求可以扩展ClsField,如ClsTextField,ClsNumberField,ClsRefField(参照域),以后我们只要new 这些class后就可以给我们生成<input type=”…” value=”….”…./>

Field.php
<?php
//系统Field数据模型
class ClsField
{
 var $fieldID;
 var $fieldName;
 var $fieldCaption;
 //域是否允许空
 var $isEmpty;
 //javascript验证逻辑
 var $validateScript;
 //验证失败提示信息
 var $validateFailedMessage;
 
 function ClsField($fieldID,$fieldName,$fieldCaption,$isEmpty,
  $validateScript,$validateFailedMessage)
 {
  $this->fieldID=$fieldID;
  $this->fieldName=$fieldName;
  $this->fieldCaption=$fieldCaption;
  $this->isEmpty=$isEmpty;
  $this->validateScript=$validateScript;
  $this->validateFailedMessage=$validateFailedMessage;
 }
}
?>

这是一个简单的ClsField类,包含了一些基本属性…

下面演示其中一个派生类ClsRefField
RefField.php
<?php
include_once("Field.php");

/*
*参照域
*参照域编号,参照域带出属性
*/
class ClsRefField extends ClsField
{
 var $arrFieldProperties;
 var $openUrl;
 function ClsRefField($fieldID,$fieldName,$fieldCaption,$isEmpty,
 $validateScript,$validateFailedMessage,$openUrl)
 {
  //调用父类构造函数
  parent::ClsField($fieldID,$fieldName,$fieldCaption,$isEmpty,
  $validateScript,$validateFailedMessage);
  $this->openUrl=$openUrl;
 }
 public function __toString()
 {
  $strScript=<<<SCRIPT
   <script language="javascript">
   function refOpen_{$this->fieldID}(openUrl,caption)
   {
    //window.alert("hello world");
    //window.alert("openUrl:"+openUrl+",caption:"+caption);
    window.open(openUrl,caption,"height=300,width=300");
   }
   </script>
SCRIPT;
  $strInput="<input type=\"text\" id=\"{$this->fieldID}\" name=\"{$this->fieldID}\"/>";
  $str="<tr><td>{$this->fieldCaption}:</td><td>{$strInput}<input type=\"button\" value=\"..\"/ onclick=\"refOpen_{$this->fieldID}('{$this->openUrl}','{$this->fieldCaption}')\">{$strScript}</td></tr>";
  return $str;
 }
}
?>
这个类ClsRefField extends ClsField 就是从ClsField 类派生出来的,其构造函数function ClsRefField(…..){
parent::ClsField($fieldID,$fieldName,$fieldCaption,$isEmpty,
  $validateScript,$validateFailedMessage);
}调用了父类的构造函数,在这里我重写了他的__toString()方法让这个类在转换为字符串的时候自动生成相应的Html代码


调用例子:
Debug.php

<?php
include_once("../inc/global_fun.php");
include_once("TextField.php");
include_once("RefField.php");

$rfUserID=new ClsRefField("userID","userID","用户编码","false","","请输入用户编码","../admin/class_picker.php?refFieldID=userID");
//error($rfUserID);
echo $rfUserID;
?>

你通过在浏览器输入 http://localhost/urProject/debug.php就可以看到效果的了。

 

分享到:
评论

相关推荐

    PHP类继承 extends使用介绍

    【PHP类继承与`extends`关键字】 类继承是面向对象编程的一个重要概念,它允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承特性,包括属性和方法。在PHP中,使用`extends`关键字实现类继承。通过...

    php类的继承用法共1页.pdf.zip

    在PHP编程语言中,类的继承是面向对象编程的一个核心概念。它允许我们创建一个新类(子类),该类可以获取另一个已有类(父类)的属性和方法,同时还可以添加自己的特性或覆盖父类的方法。这有助于代码重用和模块化...

    php定义与继承用法类.zip

    类的定义与继承是PHP中两个核心的概念,允许我们构建复杂的软件系统。 **一、PHP类的定义** 1. **类的声明**: 在PHP中,我们使用关键字`class`来定义一个类。类名通常是驼峰命名法,并且首字母大写,例如`MyClass`...

    详细对比php中类继承和接口继承

    在PHP编程语言中,类继承和接口继承是两种不同的机制,它们都用于实现代码的复用和组织。这里我们将详细对比这两种继承方式。 首先,PHP类继承是面向对象编程的一个核心概念,它允许子类(派生类)从父类(基类)中...

    类继承成绕过.php

    知识星球Sariel分享,类继承绕过。可轻松过D盾。反正现在能用

    php面向对象-继承

    PHP类的继承 什么是继承 PHP5中的继承 继承的简单例子 构造函数的继承 私有变量和方法不被继承 访问控制 Private的访问权限 protected的访问权限 public的访问权限 重写(override) 重写方法与访问权限 ...

    php用法类继承解决代码重复的问题_.docx

    在PHP编程中,类继承是一种重要的面向对象编程概念,它允许我们创建新的类(子类)来扩展已存在的类(父类),从而有效地避免代码重复,提高代码的可重用性和可维护性。标题和描述中提到的问题是通过类继承来解决PHP...

    PHP中类的继承和用法实例分析

    PHP类的继承,我们可以理解成共享被继承类的内容。PHP中使用extends单一继承的方法,请切忌!(非C++多继承)被继承的类我们叫做父类(基类)继承者成为子类(派生类)。 2、PHP继承的规则 CLASS1——&gt;CLASS2——&gt;...

    PHP 5.2 标准课程初级类的继承

    PHP 5.2 标准课程初级类的继承

    php类的定义与继承用法实例

    标题“php类的定义与继承用法实例”和描述“主要介绍了php类的定义与继承用法,实例分析了php中类的基本定义与继承的使用技巧”指出了本文的主要内容是关于PHP(一种广泛使用的开源服务器端脚本语言)中类的定义以及...

    PHP类的封装与继承详解

    - public:公有成员可以在任何地方被访问,包括类的内部、继承类和外部代码。 - protected:受保护成员可以在类的内部和继承类中被访问,但不能从外部代码访问。 - private:私有成员只能在类的内部访问,无论是继承...

    PHP Trait代码复用类与多继承实现方法详解

    本文实例讲述了PHP Trait代码复用类与多继承实现方法。分享给大家供大家参考,具体如下: 前言 众所周知,一直以来PHP和很多语言一样是单继承的语言,但是常常在编码过程中,我们需要在当前类中使用两个或两个以上的...

    php使用类继承解决代码重复的问题

    在PHP中,类继承是解决代码重复问题的强有力工具。继承允许我们创建子类,子类可以自动拥有父类的所有公共和保护属性和方法,从而在子类中复用这些代码。 继承的原理是将共通的功能放在父类中,而特有功能则在各个...

    PHP 5.2 标准课程初级类的继承-2

    PHP 5.2 标准课程初级类的继承_2

    PHP 5.2 标准课程初级类的继承-1

    PHP 5.2 标准课程初级类的继承_1

    面向对象设计 3 —— PHP5面向对象进阶(类的继承)

    本篇将深入探讨PHP5中的类的继承这一关键特性,以及如何在实际项目中应用。 首先,我们从“animal.php”文件入手,假设它定义了一个基础类`Animal`,包含一些通用属性和方法,如动物的名字、种类等,以及吃、睡等...

    PHP程序设计-3期(KC016) 3.8.2 类的继承常见问题.docx

    在PHP程序设计中,类的继承是面向对象编程的一个核心概念,它允许子类继承父类的属性和方法,从而实现代码的复用和扩展。然而,在实际编程过程中,初学者常常会遇到一些关于类继承的常见问题。下面将详细讨论这些...

    php类的扩展和继承用法实例

    在PHP中,继承可以让一个类(子类)继承另一个类(父类)的属性和方法。继承的好处是代码重用,并且可以更清晰的定义类之间的关系。 在给定的文件内容中,展示了如何在PHP中使用继承。首先定义了一个名为`Thread`的...

Global site tag (gtag.js) - Google Analytics