property_exists 方法的实验
bool property_exists ( mixed $class , string $property )
该方法是(PHP 5 >= 5.1.0, PHP 7) 的 新方法,主要作用是判断类或对象中的属性是否存在(可以无视属性权限),返回值是bool变量,存在是为true,不存在是false。
其中$class 可是字符串或类。$property
属性的名字
相关实践代码
检测当前类属性是否存在
public function __construct()
{
$config = $this->config['email'] ?? '';
if(empty($config) || !is_array($config)){
die('配置文件不存在');
}
foreach ($config as $key => $value) {
if(!property_exists($this,$key)){
continue;
}
$this->$key = $value;
}
}
<?php
class myClass {
public $mine;
private $xpto;
static protected $test;
static function test() {
var_dump(property_exists('myClass', 'xpto')); //true
}
}
var_dump(property_exists('myClass', 'mine')); //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto')); //true, as of PHP 5.3.0
var_dump(property_exists('myClass', 'bar')); //false
var_dump(property_exists('myClass', 'test')); //true, as of PHP 5.3.0
myClass::test();
?>