Example #1
0
        echo "Shooting\n";
    }
    public function dunk()
    {
        echo "Dunking\n";
    }
    public function pass()
    {
        echo "Passing\n";
    }
}
/**
 * 1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。
 * 2. 使用对象可以像使用其他值一样进行赋值操作
 */
$jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23");
// 访问对象的属性使用的语法是->符号,后面跟着属性的名称
echo $jordan->name . "\n";
// 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号
$jordan->run();
$jordan->pass();
$james = new NbaPlayer("James", "203cm", "120kg", "Heat", "6");
echo $james->name . "\n";
// 当对象变量被赋值为Null的时候,对象的析构函数会被自动调用
// 同一个类的其他对象不受影响
$james1 = $james;
// 引用赋值操作会产生对象的一个新的引用
$james2 =& $james;
// 使用&的引用赋值操作不会产生对象的一个新的引用
$james = null;
echo "From now on James will not be used anymore.\n";
Example #2
0
    }
    public function jump()
    {
        echo "Jumping\n";
    }
    public function dribble()
    {
        echo "Dribbling\n";
    }
    public function shoot()
    {
        echo "Shooting\n";
    }
    public function dunk()
    {
        echo "Dunking\n";
    }
    public function pass()
    {
        echo "Passing\n";
    }
    public function getAge()
    {
        echo $this->name . "'s age is " . ($this->age - 2) . "\n";
    }
}
// 类名加“::”可以访问类的静态成员
// 静态成员不需要实例化就可以访问
echo "The president is " . NbaPlayer::$president . "\n";
NbaPlayer::changePresident("Adam Silver");
echo "The president is changed to " . NbaPlayer::$president . "\n";
Example #3
0
        echo "Jumping\n";
    }
    public function dribble()
    {
        echo "Dribbling\n";
    }
    public function shoot()
    {
        echo "Shooting\n";
    }
    public function dunk()
    {
        echo "Dunking\n";
    }
    public function pass()
    {
        echo "Passing\n";
    }
}
/**
 * 1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。
 * 2. 使用对象可以像使用其他值一样进行赋值操作
 */
$jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23");
// 访问对象的属性使用的语法是->符号,后面跟着属性的名称
echo $jordan->name . "\n";
// 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号
$jordan->run();
$jordan->pass();
$jordan->eat("apple");
// 只要是Human类的子类的对象,就可以调用eat方法
Example #4
0
 public static function changePresident($newPresident)
 {
     self::$president = $newPresident;
     //改变静态成员的数据
     echo parent::$sValue;
 }
Example #5
0
    {
        echo "jumping\n";
    }
    public function run()
    {
        echo "runing\n";
    }
    public function dribble()
    {
        echo "dribbling\n";
    }
    public function shooting()
    {
        echo "shooting\n";
    }
    public function dunk()
    {
        echo "dunking\n";
    }
    public function pass()
    {
        echo "passing\n";
    }
}
//给构造函数传参
//每一次 new 实例化对象的时候,都会用类名后面的参数列表 调用 构造函数 自动传参给构造函数
$jordan = new NbaPlayer("joana", "198", "98kg", "bull", "123");
//对象中的属性 方法 可以通过 ->来访问 : 实例名称->属性
echo $jordan->name . "<br/>";
$jordan->eat("apple");
//子类NbaPlayer可以调用 父类Human的属性和父类的方法
Example #6
0
    {
        echo "jumping\n";
    }
    public function run()
    {
        echo "runing\n";
    }
    public function dribble()
    {
        echo "dribble\n";
    }
    public function shooting()
    {
        echo "shooting\n";
    }
    public function dunk()
    {
        echo "dunking\n";
    }
    public function pass()
    {
        echo "passing\n";
    }
}
//类到对象的实例化
//类的实例化 new 后面紧跟 类的名称()
$jordan = new NbaPlayer();
//对象中的属性 方法 可以通过 ->来访问 : 实例名称->属性
echo $jordan->name . "<br/>";
$jordan->dribble() . "<br/>";
$jordan->run() . "<br/>";
Example #7
0
    public function shooting()
    {
        echo "shooting\n";
    }
    public function dunk()
    {
        echo "dunking\n";
    }
    public function pass()
    {
        echo "passing\n";
    }
}
//给构造函数传参
//每一次 new 实例化对象的时候,都会用类名后面的参数列表 调用 构造函数 自动传参给构造函数
$jordan = new NbaPlayer("jordan", "198", "98kg", "bull", "123");
//对象中的属性 方法 可以通过 ->来访问 : 实例名称->属性
echo $jordan->name . "<br/>";
$jordan->dribble();
echo "<br/>";
$jordan->run();
echo "<br/>------------------------------<br/>";
$james = new NbaPlayer("james", "198", "98kg", "bull", "123");
echo $james->name . "<br/>";
//james
//析构函数 在程序执行完 后调用  如果 $james = null 那么程序到此结束 会调用析构函数 打印出 destroing james
//当对象不再使用的时候 会触发 析构函数
//如果 $james 没被置空 那么 程序是在 echo "from now on james will not be used<br/>";
//这一句才算执行完 这句之后再调用 析构函数 destroing james
//$jams1 = $jams; //相当于创建一个副本,复制;
//$jams2 = &$jams; //相当于取一个别名;
Example #8
0
        echo "Jumping\n";
    }
    public function dribble()
    {
        echo "Dribbling\n";
    }
    public function shoot()
    {
        echo "Shooting\n";
    }
    public function dunk()
    {
        echo "Dunking\n";
    }
    public function pass()
    {
        echo "Passing\n";
    }
    public function getAge()
    {
        echo $this->name . "'s age is " . ($this->age - 2) . "\n";
    }
}
$jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23");
// step1, 证明public和protected的属性可以被子类和自身访问
$jordan->info();
// step2,证明public的属性可以被其他类访问
echo $jordan->getAge() . "\n";
// step3,证明private的属性只能被自身访问
// 把这行代码添加到构造函数试试
echo $this->isHungry . "\n";