http://www.devshed.com/c/a/PHP/PHP-Services-Layers-Data-Mappers/

https://stackoverflow.com/questions/1980015/model-mapper-relationship

http://assets.en.oreilly.com/1/event/36/PHP%20Object-Relational%20Mapping%20Libraries%20In%20Action%20Presentation.pdf

https://github.com/marcelgsantos/learning-oop-in-php

https://github.com/domnikl/DesignPatternsPHP/tree/master/Structural/DataMapper

https://www.sitepoint.com/handling-collections-of-aggregate-roots/

https://www.sitepoint.com/integrating-the-data-mappers/

https://github.com/TwisterMW/php-dal-model

http://www.phpdao.com/

<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<title>object 对象</title>
<meta name="keywords" content="geovindu">
<meta name="description" content="涂聚文">
</head> <body> <?php // object
class User
{
public $username,$password; function getName()
{
return $this->username;
} function getPassword()
{
return $this->password; } function Save()
{
echo("保存成功!");
} }
// UserDesc 继承 User类
class UserDesc extends User
{
public $realname,$email,$birthday; function getRealname()
{
return $this->realname; } function getEmail()
{
return $this->email;
} function getBirthday()
{
return $this->birthday;
} } function getMillisecond()
{
list($s1,$s2) = explode(' ', microtime());
return (float)sprintf('%.0f', (floatval($s1)+floatval($s2)) * 1000);
} $object=new User;
print_r($object);echo("<br/>"); $object->username="geovindu"; //
$object->password="888888";// 赋值
print_r($object);echo("<br/>");
$object->Save() ;//显示文字
echo("姓名:".$object->getName()); //显示对象的name值
echo("密码:".$object->getPassword());
$object2=new UserDesc;
$object2->birthday=date('Y-m-d H:i:s');
$object2->email='geovindu@163.com';
$object2->realname='涂聚文';
$object2->username='geovindu';
$object2->password='8888'; print_r($object2);echo("<br/>"); //
class Collection implements ArrayAccess,IteratorAggregate
{
public $objectArray = Array();
//**these are the required iterator functions
function offsetExists($offset)
{
if(isset($this->objectArray[$offset])) return TRUE;
else return FALSE;
} function & offsetGet($offset)
{
if ($this->offsetExists($offset)) return $this->objectArray[$offset];
else return (false);
} function offsetSet($offset, $value)
{
if ($offset) $this->objectArray[$offset] = $value;
else $this->objectArray[] = $value;
} function offsetUnset($offset)
{
unset ($this->objectArray[$offset]);
} function & getIterator()
{
return new ArrayIterator($this->objectArray);
}
//**end required iterator functions public function doSomething()
{
echo "I'm doing something";
}
} //
class CustomContact
{
protected $name = NULL;
protected $tel=null; public function set_name($name)
{
$this->name = $name;
} public function get_name()
{
return ($this->name);
} public function settel($tel)
{
$this->tel=$tel;
} public function gettel()
{
return ($this->tel);
}
} //
$bob = new Collection();
$bob->doSomething();
$du[]=new CustomContact();
$du[5]=new CustomContact();
$du[0]->set_name("geovindu");
$du[0]->settel("13824350518");
$du[5]->set_name("sibodu");
$du[5]->settel("075582397507");
echo("<br/>");
$num=1;
foreach ($du as $aContact)
{ echo("序号:".$num."<br/>");
echo("姓名:".$aContact->get_name() . "\r\n<br/>");
echo("电话:".$aContact->gettel() . "\r\n<br/>");
$num=$num+1;
} $arry =new ArrayObject($du);
print_r($arry);
// 显示
foreach($arry as $obj)
{
echo "姓名:" . $obj->get_name();
echo "电话:". $obj->gettel();
} ?> </body>
</html>

  

<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<title>接口Creating a Data Abstraction Layer in PHP</title>
<meta name="keywords" content="geovindu">
<meta name="description" content="涂聚文">
<meta name="author" content="涂聚文">
</head> <body>
<?php
//https://github.com/ADOdb/ADOdb
//https://github.com/AdamB7586/pdo-dbal
//https://github.com/daijulong/generator interface Maxmin{
public function getMax(); public function getMin(); } class msm implements Maxmin{
private $aa=33;
private $bb=66;
//具体实现接口声明的方法
public function getMax()
{
return $this->bb;
} public function getMin()
{
return $this->aa;
} public function getOther(){
return 'geovindu:hi,how are you.';
}
} $msm=new msm();
echo($msm->getMax());
echo("<br/>");
echo($msm->getMin());
echo("<br/>");
echo($msm->getOther()); ?>
</body>
</html>

  

<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<title>多态性</title>
<meta name="keywords" content="geovindu">
<meta name="description" content="涂聚文">
<meta name="author" content="涂聚文">
</head> <body>
<?php
//定义蔬菜抽象类
abstract class Vegetables{
//抽象方法
abstract function go_Vegetables();
} //马铃薯继承蔬菜类
class Vegetables_potato extends Vegetables{
//重写抽象方法
public function go_Vegetables(){
echo("我是马铃薯");
}
}
//萝卜继承蔬菜类
class Vegetables_radish extends Vegetables{
public function go_Vegetables()
{
echo("我是萝卜");
}
}
//自定义方法根据对象调用不同的方法
function change($obj)
{ if($obj instanceof Vegetables)
{
$obj->go_Vegetables();
}
else
{
echo("输入的参数不是一个对象");
}
} try
{
echo("实例化Vegetables_potato:");
change(new Vegetables_potato());
echo("<br/>");
echo("<br/>");
echo("实例化Vegetables_radish:");
change(new Vegetables_radish());
}
catch(Exception $ex)
{
echo("异常信息:".$ex->getMessage());
}
?>
</body>
</html>

  

<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<title>通过接口实现多态</title>
<meta name="keywords" content="geovindu">
<meta name="description" content="涂聚文">
<meta name="author" content="涂聚文">
</head> <body>
<?php
//定义接口
interface Vegetables{
//定义接口方法
public function go_Vegetables();
} //马铃薯继承蔬菜类
class Vegetables_potato implements Vegetables{
//重写抽象方法
public function go_Vegetables(){
echo("我是马铃薯");
}
}
//萝卜继承蔬菜类
class Vegetables_radish implements Vegetables{
public function go_Vegetables()
{
echo("我是萝卜");
}
}
//自定义方法根据对象调用不同的方法
function change($obj)
{ if($obj instanceof Vegetables)
{
$obj->go_Vegetables();
}
else
{
echo("输入的参数不是一个对象");
}
} try
{
echo("实例化Vegetables_potato:");
change(new Vegetables_potato());
echo("<br/>");
echo("<br/>");
echo("实例化Vegetables_radish:");
change(new Vegetables_radish());
}
catch(Exception $ex)
{
echo("异常信息:".$ex->getMessage());
}
?>
</body>
</html>

  

PHP7.27: object的更多相关文章

  1. PHP7.27: MySqlhelper class

    https://github.com/ThingEngineer/PHP-MySQLi-Database-Class https://github.com/wildantea/php-pdo-mysq ...

  2. PHP7.27: connect mysql 5.7 using new mysqli_connect

    <!doctype html> <html> <head> <meta name="viewport" content="wid ...

  3. PHP7.27: connect mysql 5.7 using new mysqli

    <!doctype html> <html> <head> <meta name="viewport" content="wid ...

  4. PHP7.27: pdf

    http://www.fpdf.org/ https://github.com/Setasign/FPDF https://www.ntaso.com/fpdf-and-chinese-charact ...

  5. PHP7.27: Cookie and Session

    <?php // 有的浏览器不支持Cookie,这要考虑的 $cFile="count.txt"; $acctime=time(); if(file_exists($cFil ...

  6. php7.27: export excel from mysql

    https://stackoverflow.com/questions/15699301/export-mysql-data-to-excel-in-php https://github.com/PH ...

  7. [Javascript] Object.assign()

    Best Pratices for Object.assign: http://www.cnblogs.com/Answer1215/p/5096746.html Object.assign() ca ...

  8. PHP中遍历stdclass object 及 json 总结[中国航天神舟十号以json形式向地面返回数据]

    $test=Array ( [0] => stdClass Object ( [tags] => 最快的车,Bloodhound,SSC [id] => 48326888 11 从网 ...

  9. PHP中遍历stdclass object 及 json

    原文:PHP中遍历stdclass object 及 json (从网上找的模拟实例)需要操作的数据: $test=Array ( [0] => stdClass Object ( [tags] ...

随机推荐

  1. Mac 下 Java 多版本切换

    Step 1: 安装 jdk1.7 jdk1.8 路径如下: + /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk + /Library/Java/J ...

  2. vue高级组件之provide / inject

    转载:https://blog.csdn.net/Garrettzxd/article/details/81407199 在vue中不同组件通信方式如下 1.父子组件,通过prop 2.非父子组件,通 ...

  3. Python3入门机器学习经典算法与应用

    <Python3入门机器学习经典算法与应用> 章节第1章 欢迎来到 Python3 玩转机器学习1-1 什么是机器学习1-2 课程涵盖的内容和理念1-3 课程所使用的主要技术栈第2章 机器 ...

  4. date内置对象

    声明一个日期对像:var date=new Date(); 获取日:date.getDate()    1-31日 获取星期:date.getDay()   星期0-6 获取月: date.getMo ...

  5. [视频]K8飞刀 Discuz csrf Exp教程

    [视频]K8飞刀 一键构造Discuz csrf Exp教程 链接:https://pan.baidu.com/s/1tVseP_ZBneKpXQueIncPcA 提取码:6qnh

  6. for(var i=0;i<=3;i++){ setTimeout(function() { console.log(i) }, 10);}

    for(var i=0;i<=3;i++){ setTimeout(function() {  console.log(i)  }, 10);} 答案:打印4次4 这道题涉及了异步.作用域.闭包 ...

  7. appium安装完成后运行和执行python脚本的错误合集

    1.第一个错误如下: main.js: error: argument "--app": Expected one argument. null 这个一般是appium服务端安装的 ...

  8. Linux学习笔记之十二————vim编辑器的分屏操作

    一.分屏操作: sp: 上下分屏,后可跟文件名 vsp: 左右分屏,后可跟文件名 Ctr+w+w: 在多个窗口切换 二.启动分屏: 1.使用大写O参数进行垂直分屏 $ vim -On file1 fi ...

  9. 课程四(Convolutional Neural Networks),第一周(Foundations of Convolutional Neural Networks) —— 0.Learning Goals

    Learning Goals Understand the convolution operation Understand the pooling operation Remember the vo ...

  10. xshell 会话管理器快捷键

    有没有发现xshell6关闭左边的会话管理器以后,打开就比较麻烦 那么可以自定义一个快捷键来打开: 然后输入一个快捷键 类型选择 菜单-->然后找会话管理器 完事儿 也可以自定义其他快捷键.自己 ...