php如何验证类的属性是私有的?不要用反射。。

新手上路,请多包涵

php如何验证类的属性是私有的?不要用反射。。

阅读 2.4k
3 个回答
<?php



class PTest {

    private $v;

    public function __construct(){
        $this->v=123;
    }
}


$p = new PTest();

try {
    echo $p->v;
}catch (Error $e){
    if(strstr($e->getMessage(),'access private property')){
        echo "访问了私有属性\n";
    }
}

<?php
class someClass
{
    public function publicFunc() 
    {
    }
    private function privateFunc() 
    {
    }
}
var_dump(is_callable([new someClass,'publicFunc']));//bool(true)
var_dump(is_callable([new someClass,'privateFunc']));//bool(false)

如果只是获取pulbic属性的话,可以在类外用get_class_vars

<?php

class PTest {

    private $v = 1;
    public $c = 2;
    protected $b = 3;
}

var_dump(get_class_vars(PTest::class));

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题