zoukankan      html  css  js  c++  java
  • 类与对象属性 简单

    <?php
    header("Content-type:text/html; charset=utf-8");
    ////////////////////////////////////////////////////////
    //@date: 2013-02-23
    //类与对象-属性
    //属性的声明是由关键之子public或者protected或者private开头,然后跟一个变量来组成,属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指php脚本在编译阶段时就为常数,而不是在编辑阶段之后在运行阶段运算出来的常数
    
    // abstract class PropertyObject
    // {
    //      public function __get($name)
    //      {
    //      	if(method_exists($this, ($method='get_'.$name))){
    //      		return $this->$method();
    //      	}else
    //      	    return;
    //      }
    
    //      public function __isset($name)
    //      {
    //      	  if(method_exists($this, ($method ='isset_'.$name)))
    //      	  {
    //      	  	   return $this->$method();
    //      	  }else
    //      	       return;
    //      }
    
    //      public function __set($name, $value)
    //      {
    //      	 if(method_exists($this, ($method='set_'.$name)))
    //      	 {
    //      	 	$this->$method($value);
    //      	 }
    //      }
    
    //      public function __unset($name)
    //      {
    //      	  if(method_exists($this, ($method='unset_'.$name)))
    //      	  {
    //      	  	   $this->$method();
    //      	  }
    //      }
    // }
    
    // class test
    // {
    // 	public $var1 = 1;
    // 	protected $var2 = 2;
    // 	private $var3 = 4;
    // 	static $var4 = 4;
    
    // 	public function toArray()
    // 	{
    // 		 return (array)$this;
    // 	}
    // }
    // $t =new test;
    // print_r($t->toArray());
    
    
    //类常量
    // class MyClass
    // {
    // 	const constant = 'constant value';
    
    // 	function showConstant()
    // 	{
    // 		echo self::constant."<BR>";
    // 	}
    // }
    // echo Myclass::constant;
    
    // $classname = "MyClass";
    // echo $classname::constant; //PHP5.3之后
    
    // $class = new MyClass(); //PHP5.3之后
    // $class->showConstant();
    // echo $class::constant;
    
    // class Weather
    // {
    // 	const danger = 'parent';
    
    // 	static function getDanger($class)
    // 	{
    
    // 	}
    // }
    // class Rain extends Weather
    // {
    // 	const danger = 'child';
    // }
    // $obj = new Rain();
    // $danger = constant($class::danger);
    
    
    // abstract class dbObject
    // {
    // 	const TABLE_NAME = 'undefined';
    
    // 	public static function GetAll()
    // 	{
    // 		//Call to undefined function get_called_class() 
    // 		//提示错误,无语了
    // 		$c = get_called_class(); //get_called_class() 获取静态方法调用的类名
    // 		//return "SELECT * FROM ".$c::TABLE_NAME;
    // 		//return "SELECT * FROM `".$c::TABLE_NAME."`";
    // 		return "SELECT * FROM ";
    // 	}	
    // }
    // class dbPerson extends dbObject
    // {
    // 	const TABLE_NAME = 'persons';
    // }
    // class dbAdmin extends dbPerson
    // {
    //      const TABLE_NAME = 'admins';	
    // }
    // echo dbPerson::GetAll()."<BR><BR>";
    //手册上这个例子也一样,应该是PHP版本问题
    
    //constant()函数返回常量的值
    // function get_class_const($class, $const)
    // {
    // 	return constant(sprintf('%s::%s', $class, $const));
    // }
    // class Foo
    // {
    // 	const BAR = 'foobar';
    // }
    // $class = "Foo";
    // echo get_class_const($class, 'BAR');
    
    
    // abstract class a
    // {
    // 	private function readConst()
    // 	{
    // 		return $this->getConst('CONST');
    // 	}
    // 	//两个抽象类
    // 	abstract public static function getConstFromOutside($const);
    // 	abstract protected function getConst($const);
    // }
    
    // class b extends a
    // {
    // 	private static $CONST = 'any value';
    
    // 	public static function getConstFromOutside($const)
    // 	{
    // 		return self::$$const;
    // 	}
    // 	protected function getConst($const)
    // 	{
    // 		self::$$const;
    // 	}
    // }
    // echo b::getConstFromOutside('CONST');
    
    //eval()函数把字符串按照PHP代码来计算
    //该字符串必须是合法的PHP代码,且必须以分号结尾
    //如果没有在代码字符串中调用return语句,则返回NULL,如果代码中存在解析错误,则eval()函数返回false
    
    
    
    // class Test
    // {
    // 	public static $open=2;
    // 	protected static $var = 1;
    // 	private static $secret = 3;
    // }
    // $classname = "Test";
    // //什么是php反射类,顾名思义,可以理解为一个类的映射。
    // $x = new ReflectionClass($classname);
    // $y = array();
    // //GetStaticProperties()取得所有静态的方法
    // foreach($x->GetStaticProperties() as $k=>$v)
    // {
    // 	 //echo str_replace(chr(0), "@", $k);
    // 	 //echo $k;
    //      $y[str_replace(chr(0), "@", $k)] = $v;
    // 	 //$y[$k] = $v;
    // }
    // var_dump($y);
    // $a = array("open", "var", "secret", "nothing");
    // foreach($a as $b)
    // {
    //      if(isset($y["$b"]))
    //           echo "\$b is public: {$y[$b]}<BR><BR>";
    //      elseif(isset($y["@*@$b"]))
    //            echo "\"$b\" is protected: {$y["@*@$b"]}<br/>";        
    //      else
    //           echo "\$b:{$b} is not a static member of $classname<BR>";
    // }
    
    
    // class A
    // {
    // 	const X = 1;
    // 	const Y = self::X;
    // }
    // class B extends A
    // {
    // 	const X = 1.0;
    // }
    // var_dump(B::Y);
    // echo A::Y;
    
    
    //final用于一个类不能被继承,或者一个方法不能被覆盖
    // abstract class aClassConstant
    // {
    // 	final function __set($member, $value){
    // 		 throw new Exception("你不能设置一个常数!");
    // 	}
    
    // 	final function __get($member)
    // 	{
    // 		return $this->$member;
    // 	}
    // }
    
    // class DbConstant extends aClassConstant
    // {
    // 	protected $host = 'localhost';
    // 	protected $user = 'user';
    // 	protected $password = 'pass';
    // 	protected $database = 'db';
    // 	protected $time;
    
    // 	function __construct()
    // 	{
    // 		$this->time = time() +1;
    // 	}
    // }
    // $dbConstant = new DbConstant();
    // echo $dbConstant->host;
    // $dbConstant->host = '127.0.0.1';
    
    //const FOO = 'bar'; //这句有错
    //var_dump(FOO);
    
    // class Foo
    // {
    // 	const a=7;
    // 	const x = 99;
    // }
    // class Bar extends Foo
    // {
    //      const a = 42;
    // }
    // $b = new Bar();
    // $r = new ReflectionClass($b); //
    // echo $r->getConstant('a');//42
    // echo "<BR>".$r->getConstant('x'); //99
    
    
    
    // class Foo
    // {
    // 	const foo = 'bar';
    // 	public $foo = 'foobar';
    
    // 	const bar = 'foo';
    // 	static $bar = 'foobar';
    // }
    // var_dump(foo::$bar); //foobar
    // echo "<BR>";
    // var_dump(foo::bar); //foo
    // echo "<BR>";
    
    // $bar = new Foo();
    // var_dump($bar->foo); //foobar
    // echo "<BR>";
    // var_dump(bar::foo); //foo(现在的版本不支持)
    
    
    // interface AppConstants
    // {
    // 	const FOOBAR = 'Hello, World';
    // }
    // class Example implements AppConstants
    // {
    // 	public function test()
    // 	{
    // 		echo self::FOOBAR;
    // 	}
    // }
    // $obj = new Example();
    // $obj->test();
    
    
    // class Dimension
    // {
    // 	const MIN = 0, MAX=800;
    
    // 	public $width, $height;
    
    // 	public function __construct($w=0, $h=0)
    // 	{
    // 		$this->width = self::clamp($w);
    // 		$this->height = self::clamp($h);
    // 	}
    
    // 	public function __toString()
    // 	{
    // 		return "数据为: [width={$this->width}, height={$this->height}]";
    // 	}
    
    // 	protected static function clamp($value)
    // 	{
    // 		if($value < self::MIN) $value = self::MIN;
    // 		if($value > self::MAX) $value = self::MAX;
    // 		return $value;
    // 	}
    // }
    // echo (new Dimension())."<BR>";
    // echo (new Dimension(1500,97))."<BR>";
    // echo (new Dimension(14, -20))."<BR>";
    // echo (new Dimension(240, 80))."<BR>";
    
    
    // class abc
    // {
    // 	const avar = "abc's";
    // 	function show()
    // 	{
    // 		echo self::avar."<BR><BR>";
    // 	}
    // }
    // class def extends abc
    // {
    // 	const avar = "def's";
    // 	function showmore()
    // 	{
    // 		echo self::avar."<BR><BR>";
    // 		$this->show();
    // 	}
    // }
    // $bob = new def();
    // $bob->showmore();
    //def's
    //abc's
    
    
    // class abc
    // {
    // 	protected $avar = "abc's";
    // 	function show()
    // 	{
    // 		echo $this->avar."<BR><BR>";
    // 	}
    // }
    // class def extends abc
    // {
    //     protected $avar = "def's";
    // 	function showmore()
    // 	{
    // 		echo $this->avar."<BR><BR>";
    // 		$this->show();
    // 	}
    // }
    // $bob = new def();
    // $bob->showmore();
    ?>
    

      

  • 相关阅读:
    [牛客]十二桥问题 解题报告
    [NOIP2017 逛公园] 解题报告
    [JSOI2008]最小生成树计数 解题报告
    类欧几里得算法
    概率与期望题目列表
    [SCOI2008]配对 解题报告
    拦截导弹
    牛客网-约数的个数
    牛客网-成绩排名
    最大连续区间和的算法总结
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2926854.html
Copyright © 2011-2022 走看看