PHP 面向对象学习笔记总结
来源:互联网 发布:迅雷看看mac版下载 编辑:程序博客网 时间:2024/05/16 03:35
终于花了一天的时间学习了PHP面向对象思想。特总结如下:
单双引号的区别:” ” 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。 ‘ ‘ 单引号里面的不进行解释,直接输出。
1。多态例子:
电脑上有USB接口。但是usb接口可能有多种用途比如mp3或者优盘的功能。
interface Usb{
function drive();
function alert();
}
class Zip implements Usb{
function drive(){
echo "usb2.0";
}
function alert(){
echo "这是一个优盘";
}
}
class Mp3 implements Usb{
function drive(){
echo "usb1.0";
}
function alert(){
echo "这是一个MP3";
}
}
class Pc {
function checkUsb($what){
$what->drive();
$what->alert();
}
}
$myPc = new Pc();
$myMp3 = new Mp3();
$myZip = New Zip;
$myPc->checkUsb($myMp3);//此处输入mp3的类的对象传入
$myPc->checkUsb($myZip);
final 用于class 或者function, class用final则不能继承,function用final后不能重载
static 用于function后。函数内不能使用非静态的字段。
self可以用于访问静态字段和常量 例如self::$name
const申明时不需要$符合 例如 const NAME
怎么样去覆盖父类函数:
class Root{
protected $name ="父亲";
function getRootName(){
return $this->name."在耍游戏";
}
}
class Child extends Root{
protected $name = "孩子";
function getRootName(){ //子类覆盖了父类的函数
return Root::getRootName()."在耍游戏";//调用父类的函数
}
}
$myroot = new Child();
echo $myroot->getRootName();
申明抽象类。抽象类没有方法体,需被继承后实现里面的所有方法才可以调用,抽象类里面可以申明变量。
abstract class classA{
abstract function funA();
abstract function funB();
}
class classB extends classA{
function funA(){
return "我实例化了抽象函数";
}
}
$myclassb = new classB();
echo $myclassb->funA();
申明接口类。其实接口类是一个特殊的抽象类。接口也没有方法体。必须有类实现此接口所有方法后可使用。但是申明的变量必须为常量const。 同时接口类可以继承抽象类。例如
interface demo{
const NAME="接口必须为常量";
function funA();
function funB();
}
//抽象类
abstract class ClassD implements demo{
public $name1="抽象类的属性";
//接口实现的funA()和funB()
function funA(){
echo "实现接口的抽象方法!";
}
function funB(){
}
//抽象类的方法
abstract function funC($name1);
}
//实现抽象类的方法
class ClassE extends ClassD{
function funC($nameE){
echo "实现了抽象类的方法";
}
}
$classE = new ClassE();
$classE->funA(); //输出实现接口的抽象方法!
$classE->funC(); //输出实现了抽象类的方法
2。三元运算符 e1?e2:e3 (如果e1为真那么输出e2,为假输出e3)
例如 echo (2>3)?"真":"假";
3. 怎样输出数组的值
$myArray = array(
"sun"=>"123",
"moon"=>"456"
);
foreach($myArray as $key1=>$value){
echo $key1."=>".$value."<br>";
}
4。 使用instanceof 判断类对象
$classE = new ClassE();
if ($classE instanceof ClassE) echo "这是真的"
5. 使用__set($name, $value)方法设置类的私有变量访问
使用__get()方法设置类私有累变量的设置
class ClassA {
private $name;
function __construct($n){
echo "构造函数";
$this->name = $n; //注意如果此行改为$this->$name = $n 则$name 不能成功赋值。自己也没搞懂有什么不同???
}
function __set($n,$v){
$this->$n = $v;
}
function __get($name){
return $this->name;
}
function destruct(){
}
}
$classA = new ClassA('etetet');
echo $classA->$name;
$classA->name = "wydfdg";
echo $classA->$name;
- PHP 面向对象学习笔记总结
- PHP学习笔记--面向对象
- php面向对象学习笔记
- php面向对象学习笔记
- PHP面向对象学习笔记
- PHP面向对象的程序设计学习总结
- PHP面向对象学习的笔记
- PHP面向对象学习的笔记
- PHP学习笔记(四)面向对象
- php面向对象编程--学习笔记
- php面向对象编程示例学习笔记
- php类面向对象学习笔记
- JavaSE面向对象学习笔记总结
- PHP 面向对象总结
- PHP面向对象总结
- [总结]PHP面向对象
- PHP面向对象总结
- PHP面向对象总结
- jdksfhkjalsfdgasfdg
- 写给想当程序员的朋友
- 初下ー28-文法
- 无插件在Eclipse中配置Resin方法
- 陈广 C#学习笔记(数组2-3)
- PHP 面向对象学习笔记总结
- MyISAM和InnoDB的异同
- 自己写的分页Util类
- dwr异步改为同步
- In_interrupt( ) 和In_irq( )
- 电脑定时自动开机无需人手动开机
- 第一个go语言的网络程序
- 在 Linux 上构建一个 RADIUS 服务器
- bitmap convert to RGB565 display