⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 property_exists.phpt

📁 PHP v6.0 For Linux 运行环境:Win9X/ WinME/ WinNT/ Win2K/ WinXP
💻 PHPT
字号:
--TEST--Reflection and property_exists()--SKIPIF--<?php extension_loaded('reflection') or die('skip'); ?>--FILE--<?phpclass A{	public    $a = 1;	protected $b = 2;	private   $c = 3;		public    $empty;	public    $init = 1;		function __toString()	{		return 'obj(' . get_class($this) . ')';	}		static function test($oc, $props)	{		echo '===' . __CLASS__ . "===\n";		foreach($props as $p2) {			echo $oc, '::$' , $p2, "\n";			var_dump(property_exists($oc, $p2));		}	}}class B extends A{	private   $c = 4;		static function test($oc, $props)	{		echo '===' . __CLASS__ . "===\n";		foreach($props as $p2) {			echo $oc, '::$' , $p2, "\n";			var_dump(property_exists($oc, $p2));		}	}}class C extends B{	private   $d = 5;		static function test($oc, $props)	{		echo '===' . __CLASS__ . "===\n";		foreach($props as $p2) {			echo $oc, '::$' , $p2, "\n";			var_dump(property_exists($oc, $p2));		}	}}$oA = new A;$oA->e = 6;$oC = new C;$pc = array($oA, 'A', 'B', 'C', $oC);$pr = array('a', 'b', 'c', 'd', 'e');foreach($pc as $p1) {	if (is_object($p1)) {		$p1->test($p1, $pr);	} else {		$r = new ReflectionMethod($p1, 'test');		$r->invoke(NULL, $p1, $pr);	}	echo "===GLOBAL===\n";	foreach($pr as $p2) {		echo $p1, '::$' , $p2, "\n";		var_dump(property_exists($p1, $p2));	}}echo "===PROBLEMS===\n";var_dump(property_exists(NULL, 'empty'));var_dump(property_exists(25,'empty'));var_dump(property_exists('',''));var_dump(property_exists('A',''));var_dump(property_exists('A','123'));var_dump(property_exists('A','init'));var_dump(property_exists('A','empty'));var_dump(property_exists(new A, ''));var_dump(property_exists(new A, '123'));var_dump(property_exists(new A, 'init'));var_dump(property_exists(new A, 'empty'));?>===DONE===<?php exit(0); ?>--EXPECTF--===A===obj(A)::$abool(true)obj(A)::$bbool(true)obj(A)::$cbool(true)obj(A)::$dbool(false)obj(A)::$ebool(true)===GLOBAL===obj(A)::$abool(true)obj(A)::$bbool(false)obj(A)::$cbool(false)obj(A)::$dbool(false)obj(A)::$ebool(true)===A===A::$abool(true)A::$bbool(true)A::$cbool(true)A::$dbool(false)A::$ebool(false)===GLOBAL===A::$abool(true)A::$bbool(false)A::$cbool(false)A::$dbool(false)A::$ebool(false)===B===B::$abool(true)B::$bbool(true)B::$cbool(true)B::$dbool(false)B::$ebool(false)===GLOBAL===B::$abool(true)B::$bbool(false)B::$cbool(false)B::$dbool(false)B::$ebool(false)===C===C::$abool(true)C::$bbool(true)C::$cbool(false)C::$dbool(true)C::$ebool(false)===GLOBAL===C::$abool(true)C::$bbool(false)C::$cbool(false)C::$dbool(false)C::$ebool(false)===C===obj(C)::$abool(true)obj(C)::$bbool(true)obj(C)::$cbool(false)obj(C)::$dbool(true)obj(C)::$ebool(false)===GLOBAL===obj(C)::$abool(true)obj(C)::$bbool(false)obj(C)::$cbool(false)obj(C)::$dbool(false)obj(C)::$ebool(false)===PROBLEMS===Warning: First parameter must either be an object or the name of an existing class in %sproperty_exists.php on line %dNULLWarning: First parameter must either be an object or the name of an existing class in %sproperty_exists.php on line %dNULLbool(false)bool(false)bool(false)bool(true)bool(true)bool(false)bool(false)bool(true)bool(true)===DONE===

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -