찾다

 >  Q&A  >  본문

php 的public作用

<?php 
class ren{
public $xingming;//定义一个成员变量 这里是否保存成员方法里的变量值 
public $shengao;//定义一个成员变量
public $tizhong;//定义一个成员变量
public function boot($name,$sg,$tz){//声明成员变量 利用public声明function boot($name,$sg,$tz)作用是什么
$this->xingming=$name;
$this->shengao=$sg;
$this->tizhong=$tz;
if($this->shengao<185 && $this->tizhong<85){
echo $this->xingming."符合要求 可以通过"; //方法实现的功能
}else{
echo $this->xingming."不符合要求 不可以通过";//方法实现实现的功能
}
}
}
$sport=new ren(); //实例化类并传递参数
echo $sport->boot("李亚","165","51");//执行类中的方法
?>

我个人的思路是 利用$this调用成员变量 调用过然后再把成员方法赋给$this调用成变量里 然后再利用 public它来保存 把成员方法赋给成员变量里的值 我不知道我的思路可是对了 求高手指教谢谢

阿神阿神2945일 전1255

모든 응답(2)나는 대답할 것이다

  • 学习ing

    学习ing2016-11-09 16:51:52

    类的修饰词
    表示公开的类,可以继承可以访问

    회신하다
    0
  • 汪汪

    汪汪2016-11-09 16:51:29

    从PHP5.0版本开始,对象声明时需要声明对象属性和方法的可见性,public关键字表示属性或方法是公开可见的。

    在PHP5.0之前未支持对象属性和方法的可见性定义,默认所有的属性和方法都是公开可见的,如以下的对象声明:

    //例1
    class Obj {
        var $name = 'Obj';
        function getName() {
            return $this->name;
        }
    }

    而PHP5开始推荐写法为:

    //例2
    class Obj {
        protected $name = 'Obj';
        public function getName() {
            return $this->name;
        }
    }

    对于例1来说,实际上可以直接访问name属性,从而绕过getName方法,如

    $obj = new Obj(); 
    echo $obj->name;

    而对于例2来说,由于$name属性是protected(受保护的),因此必须使用getName方法才能得到$name属性的值。

    同时这也是面向对象语言通用的一种声明方式。

    public: 公开可见

    protected: 对象内部可见 (该对象的子对象同样可以访问)

    private: 对象自身内部可见 (不包含该对象的子对象,或者说private属性和方法不会被继承)


    회신하다
    0
  • 취소회신하다