PHP类和对象概念及用法

类和对象的关系

可以将类看成为一件模具,倒入不同的材料(属性和方法),这些材料用于构建独特的对象

类的基本组成部分

属性:类中的变量,用于储存数据

方法:类中的函数,用于操作和访问类的属性

类及其属性和方法的创建

定义类

class Class_name{

        定义成员变量

        var $variate_name;

 

        定义变量并指定默认值

        var $variate_name = value;

 

        定义成员函数

        function function_name(){

                code block;

        }

 

}

对象的创建及使用

对象是由类生成的具体实例,包含了类定义的属性及方法。

1.使用关键字new,通过类实例化对象

$object_name = new class_name();

 

2.属性的赋值:对象使用操作符,指定属性名进行赋值

$object_name -> attribute_name = value;

 

3.方法的调用:对象使用操作符。指定方法名进行调用

$object_name -> method_name(parameter);

 练习及讲解

源码

<?php
    header("content-type:text/html;charset=utf8");
    class scan {
        //成员变量
        var $target;
        var $strength = 'medium'; //默认扫描强度为medium

        //成员函数
        function task($name='匿名'){
                echo $name . "正在对目标" . $this->target . '进行扫描' . "扫描强度为" . $this->strength;
        }

    }
    //实例化对象
    $person1 = new scan();

    //输出对象详细信息
    var_dump($person1) ;
    /* 
        object(scan)#1 (2) { ["target"]=> NULL ["strength"]=> string(6) "medium" }
    */
    echo '<br>';

    //调用对象内task方法
    $person1->task();
    //匿名正在对目标进行扫描扫描强度为medium

    //创建第二个对象,并指定target属性
    $person2 = new scan();
    $person2->target = '192.168.1.1';
    echo '<br>';
    
    var_dump($person2);
    /* 
        object(scan)#2 (2) { ["target"]=> string(11) "192.168.1.1" ["strength"]=> string(6) "medium" }
    */
    
    //调用对象内task方法并传入实参
    $person2->task('you');
    //you正在对目标192.168.1.1进行扫描扫描强度为medium
  


?>

实例讲解

class scan {
        //成员变量
        var $target;
        var $strength = 'medium'; //默认扫描强度为medium

        //成员函数
        function task($name='匿名'){
                echo $name . "正在对目标" . $this->target . '进行扫描' . "扫描强度为" . $this->strength;
        }

    }

 

定义类名为scan的类,类中定义成员变量target和strength,添加属性strength默认值为medium。

创建成员函数task,定义传参参name,默认值为 匿名 。

方法内部使用echo语句输出,由$name,$target,$strength属性构造的字符串。

特殊变量$this,代表当前对象,可以通过$this调用当前对象的属性及方法。

实例化对象

通过new实例化对象person1

 

$person1 = new scan();

 

var_dump输出对象详细信息

 

var_dump($person1);

 

object(scan)#1 (2) { ["target"]=> NULL ["strength"]=> string(6) "medium" }

 

变量类型为对象,由scan类的实例,编号为1。对象有两个属性,target属性值为空,strength属性类型为字符串长度为6个字符,具体为medium。

调用对象内方法

$person1->task();

由于未指定成员变量属性值和方法参数,target属性默认为空,medium属性默认为medium,name默认为匿名。

输出内容:

匿名正在对目标进行扫描扫描强度为medium

创建新的对象,指定成员变量属性值,调用方法传入实参

创建对象person2

 

$person2 = new scan();

 

指定target属性值

 

$person2->target = '192.168.1.1';

 

输出对象详细信息

 

var_dump($person2)

 

object(scan)#2 (2) { ["target"]=> string(11) "192.168.1.1" ["strength"]=> string(6) "medium" }

 

调用方法并传入实参

 

$person2->task('you');

 

you正在对目标192.168.1.1进行扫描扫描强度为medium

 

相关推荐

  1. PHP对象概念

    2024-05-12 07:52:02       10 阅读
  2. PHP面向对象基础之对象基本特点

    2024-05-12 07:52:02       35 阅读
  3. git的基本概念

    2024-05-12 07:52:02       27 阅读
  4. PHP对象扩展[构造函数,析构函数]

    2024-05-12 07:52:02       11 阅读
  5. Git概念

    2024-05-12 07:52:02       9 阅读
  6. lucene中Collector、CollectorManager区分

    2024-05-12 07:52:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-12 07:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-12 07:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-12 07:52:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-12 07:52:02       20 阅读

热门阅读

  1. C++Primer Plus第三章编程练习4

    2024-05-12 07:52:02       10 阅读
  2. Node.js -- 会话控制

    2024-05-12 07:52:02       9 阅读
  3. iOS 如何让超出父视图的部分响应事件

    2024-05-12 07:52:02       12 阅读
  4. 电商平台遭遇DDOS、CC攻击有什么防护方案

    2024-05-12 07:52:02       9 阅读
  5. Lucene 英文词根处理

    2024-05-12 07:52:02       11 阅读
  6. 十分钟“手撕”内部类+static在内部类的使用

    2024-05-12 07:52:02       11 阅读
  7. react经验15:拖拽排序组件dnd-kit的使用经验

    2024-05-12 07:52:02       9 阅读
  8. vue.js 介绍

    2024-05-12 07:52:02       9 阅读
  9. React Router DOM BrowserRouter

    2024-05-12 07:52:02       10 阅读
  10. Pycharm所有快捷键的使用

    2024-05-12 07:52:02       9 阅读
  11. 【DevOps】Linux 网络命令netstat详解

    2024-05-12 07:52:02       12 阅读
  12. ensp简单ac+ap+sta无线配置和脚本

    2024-05-12 07:52:02       8 阅读
  13. ubuntu删除opencv

    2024-05-12 07:52:02       8 阅读