PHP 类与对象 知识详解

PHP 类与对象

 

一、第一个类:

 

class People{

//创建类

             *****类名可以包括字母、数字和下划线的任何组合,但是不能以数字开头

}

 

实例化:

$people  = new People();

 

二、属性:

在类的主体中可以声明叫做属性的特殊变量。

  <?php
     class People{

      public $name = '张三';

      public $age = '18';

}

 

$people = new People();

echo'<pre>';
print_r($people);
echo'<pre>';

?>

 

输出结果:

People Object

(

    [name] => 张三

     [age] => 18

)

 

可以使用对象操作符 "->" 来访问公共对象属性 $people-> name: 求people对象的name属性

例子:

<?php
     class People{

      public $name = '张三';

      public $age = '18';

}
$people1 = new People();  // 实例化一个people1对象
$people2 = new People();  // 实例化一个people2对象

$people1->name ='小乔'; // 给people1 对象的name属性赋值
$people1->age  = 26;//给people1 对象的age属性赋值
$people2->name ='张飞';
$people2->age  = 40;


echo'<pre>'; // 按照原格式输出
print_r($people1);
print_r($people2);
echo'<pre>';


?>

输出结果:

People Object(

  [name] => 小乔

  [age] => 26

)

 

People Object(

 [name] => 张飞

 [age] => 40

)

 

三、方法

<?php
     class People{

      public $name = '张三';
      public $age = '18';
 
   function intro(){
     return "我的名字是:{$this->name},今年{$this->age}岁了。";
   }

     }

$people = new People();


echo'<pre>';
print_r($people -> intro());
echo'<pre>';
?>

输出结果:

我的名字是:张三,今年18岁了。

 

四、构造函数

 

php和java一样,在实例化对象的时候调用构造函数,对象的所有基本设置代码都放在构造函数中 ,但是php的构造函数名一定要是“__construct” 开头是两个下划线

<?php
     class People{

      private $name='';
      private $age =0;
 
   function __construct($name,$age){
        $this->name=$name;// 赋值运算
        $this->age =$age;
   }
   function intro(){
     return "我的名字是:{$this->name},今年{$this->age}岁了。";
   }

     }

$people = new People('sss',26);


echo'<pre>';
print_r($people->intro());
echo'<pre>';
?>

 

输出结果:

我的名字是:sss,今年26岁了。

 

五、 private public  protected 作用域

 

<?php
     class People{

      private $name='';
      private $age =0;
 
   function __construct($name,$age){
    $this->name=$name;
    $this->age =$age;
   }
   function intro(){
     return "我的名字是:{$this->name},今年{$this->age}岁了。";
   }
  
   function get_name()

  {   //添加方法
       return $this->name;  //返回姓名
   }
      
   private  function  get_age(){   //添加方法
     return $this->age;  // 返回年龄
   }
$people = new People('和氏璧',26);


echo'<pre>';
print_r($people->get_name());  // 调用get_name方法
echo'<pre>';
?>

输出结果:和氏璧

 

六、在类上下文进行操作:

 

到目前为止,所看到的方法和属性都在对象上下文中进行操作。即是必须使用对象实例$people,通过$this伪变量或是标准变量中存储的对象引用来访问方法和属性

有时候,可能发现通过类(People)而不是对象实例来访问属性和方法更有用

 

这种类成员叫做静态成员

<?php
     class People{

       private static $number = 10;//private静态变量
   
    public static function get_number(){//public 静态方法
    
      return self:: $number;//返回number数值  
    }

     }

echo'<pre>';
print_r(People::get_number());
echo'<pre>';
?>

 

输出结果:  10

const   ===  关键字声明类常量

 

 

 

七、继承

 

继承是面向对象的重要特点之一,它可以实现对类的复用

 

一个类只能继承一个父类,但是一个父类可以被多个子类所继承 ,继承的关键字extends

 

例子:

<?php
     class People{

      private $name='';
      private $age =0;
 
   function __construct($name,$age){
    $this->name=$name;
    $this->age =$age;
   }
   function intro(){
     return "我的名字是:{$this->name},今年{$this->age}岁了。";
   }
  
   function get_name(){//添加方法
     return $this->name;  //返回姓名
   }
  
   private function get_age(){//添加方法
     return $this->age; 
   }

   }
 
   //继承
   class Student extends People{
   
   }
  
    $stu = new Student("洋学生",28);
 print_r($stu -> intro());

?>

 

输出结果:

我的名字是:洋学生,今年28岁了。

 

子类除了继承父类的属性和方法也可以自己创建自己的属性和方法,然后调用自己的属性和方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值