PHP面向对象:

    一、如何定义类

        声明类

        class Dog

        {

            var $name;

            var $age;

            var $pinzhong;


            function Jiao()

            {

                echo "{$this->name在叫}";#this代表当前对象

            }

        }

    二、实例化对象

        $dog = new Dog();

        调用成员变量

        $dog->name = "旺财";

        $dog->age = 10;

        $dog->pinzhong = "哈士奇";

        调用方法

        $dog->Jiao();

    三、this关键字

        $this->name;this代表该对象,如果要在成员方法中调用成员变量,一定要是用$this引用

    四、构造函数

        class Dog

        {

            var $name;

            var $age;

            var $pinzhong;

            function __construct($n,$a,$p)#下划线有两个

            {

                $this->name = $n;

                $this->age = $a;

                $this->pinzhong = $p;

            }


            function Jiao()

            {

                echo "{$this->name在叫}";#this代表当前对象

            }

        }

        $dog = new Dog("旺财",10,"金毛");


        $dog->Jiao();

    五、析构函数

        

        class Dog

        {

            var $name;

            var $age;

            var $pinzhong;

            function __construct($n,$a,$p)#下划线有两个

            {

                $this->name = $n;

                $this->age = $a;

                $this->pinzhong = $p;

            }


            function Jiao()

            {

                echo "{$this->name在叫}";#this代表当前对象

            }

        function __destruct()#析构函数

        {

            echo "拜拜";

        }

        }

        $dog = new Dog("旺财",10,"金毛");


        $dog->Jiao();

    六、封装:

        降类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。如果将变量设置为私有,,如何去访问:

        1,自己写函数get函数set函数,然后来对变量赋值和取值

        2,用系统自带的__get()函数和__set()函数来实现类里面的变量赋值和取值

        class Dog

        {

            private $name;

            private $age;

            private $pinzhong;

            /*function SetName($n)

            {

                $this->name = $n;

            }


            function SetAge($a)

            {

                if($a>=1 && $a<=5)

                {

                $this->name = $a;

                }

            }*/

            function __set($name,$value)

            {
                
                $this->$name = $value;

            }

            function __get($name)

            {
                
                return $this->$name;

            }

            function __construct($n,$a,$p)#下划线有两个   类的构造函数,用new引用函数。

            {

                $this->name = $n;

                $this->age = $a;

                $this->pinzhong = $p;

            }


            function Jiao()

            {

                echo "{$this->name在叫},它{this->age}岁了";#this代表当前对象

            }

        function __destruct()#析构函数

        {

            echo "拜拜";

        }

        }

        $dog = new Dog("旺财",10,"金毛");

        $dog->name = "小强";

        $dog->age = "3";

        echo $dog->name;

        $dog->Jiao();

    七,继承

        class HaShiQi extends Dog#哈士奇继承狗的类, 哈士奇是子类,狗类是父类

        {

            

        }

     八、方法的重写     final将不能被继承,写在类前面

        class HaShiQi extends Dog#哈士奇继承狗的类, 哈士奇是子类,狗类是父类

        {

            public static $height;

            function Jiao()

            {

                pstrny::Jiao();#引用父类的方法,在子类中调用父类的方法  类调用方法用::

                echo "hello";#另外添加的方法

            }
            
            function Gao()

            {

                echo "这么高".self::$height;self代表这个类   this 代表这个对象

            }

        }        

        HaShiQi::$height = 10;调用静态的成员

        echo HaShiQi::$height;

        $dog->jiao();


    static 静态属于类的。而不是对象的。 例如粉笔的长度是非静态的,颜色是静态的。 颜色是属于类的,长度是属于对象的。

    九、多态
        
        条件:必须要继承,父类的引用指向子类的实例,重写函数。

        tostring方法,在输出对象的时候可以显示该方法中的信息

        $r1 =clone $ren  克隆对象

        在克隆的时候会自动执行,该函数的目的就是将克隆出来的对象进行一些改变

        引入页面   include(“china.php”)#同一页面

               require_once "china.php"

               include(“class/china.php”)

               include(“../china。php”)

         自动加载

         function __autoload($classname)

            {
    
                require_oncce $classname . ".php"

            }

posted on 2016-01-27 09:00  一念了了  阅读(176)  评论(0编辑  收藏  举报