<?php
echo "对象:<br>";
$ball->color ="green";
$ball->weight =100;
echo $ball->color . "/" . $ball->weight;
echo "类:<br>";
class human
{
//构造函数 必须是__construct
function __construct($name="zhu")
{
$this->name =$name;
}
}
$myhuman = new human('xiaobei');
echo "$myhuman->name" ."<br>";
$myhuman = new human();
$myhuman->age = 100;
printf("human:%s, age:%s<br>",$myhuman->name,$myhuman->age);
/*===========================================================*/
class Fruit {
const CONST_VALUE = 'Fruit Color';
}
class Apple extends Fruit
{
public static $color = 'Red';
public static function doubleColon() {
echo parent::CONST_VALUE . "\n";
echo self::$color . "\n";
}
}
Apple::doubleColon();
/*==============================================================*/
echo "<br />";
class MyClass{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error //私有和受保护的属性都不能直接引用
$obj->printHello(); // Shows Public, Protected and Private
/**
* Define MyClass2
*/
class MyClass2 extends MyClass{
// We can redeclare the public and protected method, but not private
protected $protected = 'Protected2';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj2 = new MyClass2();
echo $obj->public; // Works
echo $obj2->private; // Undefined //私有属性可以重新定义,但MyClass2里面没有定义
echo $obj2->protected; // Fatal Error //受保护的属性不能重新定义
$obj2->printHello(); // Shows Public, Protected2, not Private
?>