说说php面向对象编程时static,public,private,protected 各有什么意义

说说php面向对象编程时static,public,private,protected 各有什么意义,第1张

staticpublic与publicstatic是等价的,这两者只是两个修饰符的顺序不同。根据oraclecom教材中第八章的描述,如果两个或两个以上的(不同的)字段修饰符出现在字段声明,它们出现的顺序需与FieldModifier一致,这只是习惯,但不是必需的。部分修饰符说明:public是访问权限修饰符,用于控制外界对类内部成员的访问,声明为public的对象成员是完全共有的,外界可以随意访问,除此之外还有private,protected和默认。static控制类成员变化的修饰符。static是静态成员修饰符,其修饰的静态变量脱离具体对象独立存在,在内存中之后一份拷贝,所有的对象都公用这一个存储空间,所以对static修饰的静态变量进行的修改对该类的所有对象都起作用。static修饰的静态函数代表所有对象的统一 *** 作,只能调用静态变量。static是针对面向对象中的“多态”而提出来的,static修饰的静态成员不存在多态性。附:FieldModifier顺序

1 public:权限是最大的,可以内部调用,实例调用

2 protected: 受保护类型,用于本类和继承类调用

常用场景在权限设置

有需要用到权限的Class,只要继承Base这个Class即可用到登录验证。执行Login的时候会先运行Base里面的方法

3 private: 私有类型,只有在本类中使用。

4 static: 一般是在传值的时候使用,表示值不会被修改,默认为public,可用::访问

private 是完全私有的,只有当前类中的成员能访问到 protected 是受保护的,只有当前类的成员与继承该类的类才能访问 这两个是访问类中成员权限的限制符在类外如果想使用类中的成员,只能直接使用public类型的,protected和private都是不能访问的

/

  获取一个函数的依赖

  @param  string|callable $func

  @param  array  $param 调用方法时所需参数 形参名就是key值

  @return array  返回方法调用所需依赖

 /

function getFucntionParameter($func,$param=[]) {

    if(!is_array($param)) {

        $param = [$param];

    }

    $ReflectionFunc = new \ReflectionFunction($func);

    $depend = array();

    foreach($ReflectionFunc->getParameters() as $value) {

        if(isset($param[$value->name])) {

            $depend[] = $param[$value->name];

        }elseif($value->isDefaultValueAvailable()){

            $depend[] = $value->getDefaultValue();

        }else{

            $tmp = $value->getClass();

            if(is_null($tmp)) {

                throw new \Exception("Function parameters can not be getClass {$class}");

            }

            $depend[] = $this->get($tmp->getName());

        }

    }

    return $depend;

}

function test($a,$b=20) {

    echo $a,',',$b;

}

$depend = getFucntionParameter('test',['a'=>30,'b'=>40]);

call_user_func_array('test',$depend); // 30,40

上面的函数是我开发的框架的容器的方法。

php提供了很完整的反射机制。不但可以反射函数,还可以反射方法,反射类构造函数。

private 关键字声名 一个私有的方法或属性;定义了private的方法或属性在类的外部不能访问,只能在本类中使用。

类中使用私有方法:

$this->属性 或 方法()

static 关键字 是创建一个静态方法或静态属性;定义了static 的方法或属性不需要实例化就可以使用。

访问静态变量 类名::$变量名;

访问静态方法 类名::方法名();

访问本类静态变量 self::$变量名;

访问本类静态方法 self::方法名();

访问父类静态变量 parent::$变量名;

访问父类静态方法 parent::方法名();

class Test{

        public $var1;

        public $var2;

        public function   __construct(){

                //构造函数

       }

      

       private function mypriAction(){

                //私有方法,只能在类里面访问

       }

       protected function mypriteAction(){

                //私有方法,只能在类里面和了类里面访问

       }

      public function pre($obj){

              //公共方法,实例化以后可以调

              echo "<pre>";

              print_r($obj);

              echo "</pre>";

     }

}

$test = new Test();

$arr = array(1,2,3,4,5);

$test->pre($arr);

以上就是关于说说php面向对象编程时static,public,private,protected 各有什么意义全部的内容,包括:说说php面向对象编程时static,public,private,protected 各有什么意义、php class中public,private,protected,static、php protected private什么时候该用什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9457394.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存