zoukankan      html  css  js  c++  java
  • PHP7.27: object

     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() . "
    <br/>");
    	 echo("电话:".$aContact->gettel() . "
    <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>
    

      

  • 相关阅读:
    【Difference Between Primes HDU
    【Pet HDU
    《Java程序设计实验》 软件工程18-1,3 OO实验2
    【数据结构作业】-【带头结点的单链表就地逆置】
    【Miscalculation UVALive
    【Bit String Reordering UVALive
    【Bazinga HDU
    (转载)博弈汇总【巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈】
    【Audiophobia UVA
    【Calling Circles UVA
  • 原文地址:https://www.cnblogs.com/geovindu/p/9468040.html
Copyright © 2011-2022 走看看