博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 类与对象 知识详解
阅读量:4115 次
发布时间:2019-05-25

本文共 2870 字,大约阅读时间需要 9 分钟。

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岁了。

 

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

转载地址:http://jqupi.baihongyu.com/

你可能感兴趣的文章
1. Spring 4.2.3前瞻-更简单的Application Event
查看>>
2. Spring 4.2.3前瞻-对java8默认方法(default method)定义Bean的支持
查看>>
3. Spring 4.2.3前瞻-@Import注解的升级
查看>>
4. Spring 4.2.3前瞻-使用@Order调整配置类加载顺序
查看>>
Jquery,ajax 跨域访问
查看>>
JSON--Java与AJAX(Jquery)
查看>>
基于linux系统下的SVN服务安装
查看>>
windows7_64下Oracle客户端及PL/SQL安装
查看>>
初级软件测试工程师工资(薪资待遇)一般是多少?
查看>>
去了阿里面试软件测试工程师,面试官问我3-5年的职业规划!
查看>>
从手工功能测试到自动化测试开发,我的思维经历了哪些变化?
查看>>
【2021还不知道这个就out了】DevOps/TestOps概念
查看>>
关于自动化测试的误区(完整版)
查看>>
测试之美---测试员的心思你不懂
查看>>
微软的软件测试工程师——《微软的软件测试之道》
查看>>
软件测试工程师,你到底需要多少技能傍身,才能平安度过此生?
查看>>
软件测试面试题——场景题
查看>>
软件测试面试题——设计模式
查看>>
软件测试面试题——开发工具
查看>>
软件测试面试题——前端
查看>>