zoukankan      html  css  js  c++  java
  • (转)一步一步学习PHP(5)——类和对象

    OO的强大我不想再多说,如果你不认同OO,那么当你放眼当前流行的语言,有哪个又不支持OO的,也许这个很有说服力了吧。

    在这一节中,我们就来看看在PHP中如何创建一个类和对象。

    1. 创建类

    在PHP中,创建一个类和在C#/Java中基本类似,闲话少说,给大家看个最简单的例子:

    <?php 
    class People
    {
    var $name;
    public function GetName()
    {
    return $this->name;
    }
    public function SetName($name)
    {
    $this->name=$name;
    }
    }

    $p=new People();
    $p->SetName("kym");
    echo($p->GetName());
    ?>

    这里,我们就创建一个People的类,在这里有四个要点说明一下:

    第一个是在PHP中,访问属性(或者方法)不是用我们所常用的点运算符(.),而是用->。

    第二个是在PHP中,方法需要用function在标识,这点于Javascript很类似。

    第三点是当我们声明一个变量时,需要用var,这点也与Javascript非常类似。

    第四点是在PHP中,也有着public ,protected,private三个与C#同样的访问修饰符,不再赘述。

    在这里,我们发现,我们可以用$p直接访问$name属性,那么我们需要对其进行控制,方法如下:

    class People
    {
    private $name;
    public function GetName()
    {
    return $this->name;
    }
    public function SetName($name)
    {
    $this->name=$name;
    }
    }

    这时,我们在外界就无法访问到$name属性了。

    还记得我们在上文中提到了可变函数么?在这里我们一样可以用可变函数来访问对象的方法:

    <?php 
    class People
    {
    private $name;
    public function GetName()
    {
    return $this->name;
    }
    public function SetName($name)
    {
    $this->name=$name;
    }
    }

    $p=new People();
    $get="GetName";
    $set="SetName";
    $p->$set("kym");
    echo($p->$get());
    ?>

    2. 静态方法(属性)

    在PHP中声明静态方法(也可称之为类方法)与C#中是十分类似的。

    <?php 
    class DataBase
    {
    public static function CreateConnection()
    {
    echo("Success");
    }
    }
    DataBase::CreateConnection();
    ?>

    同理,声明静态属性也是一样。

    <?php 
    class DataBase
    {
    static $connectionString="http://127.0.0.1";
    public static function CreateConnection()
    {
    echo("Success");
    }
    }
    echo(DataBase::$connectionString);
    DataBase::CreateConnection();
    ?>

    3. 类常量

    在C#中,我们用const来标识常量,在PHP中也是一样。

    <?php 
    class DataBase
    {
    const AUTHOR="kym";
    static $connectionString="http://127.0.0.1";
    public static function CreateConnection()
    {
    echo("Success");
    }
    }
    echo(DataBase::AUTHOR);
    echo(DataBase::$connectionString);
    DataBase::CreateConnection();
    ?>

    4. 访问静态变量

    我们知道,静态属性(方法)属于类本身,而变量(方法)属于对象本身,而类本身先于对象而存在,那么我们如何来在动态方法中访问静态的变量(方法)呢?在PHP中,为我们提供了self关键字。

    <?php 
    class DataBase
    {
    const AUTHOR="kym";
    static $connectionString="http://127.0.0.1";
    public static function CreateConnection()
    {
    echo(self::$connectionString." Success");
    }
    }
    echo(DataBase::AUTHOR);
    echo(DataBase::$connectionString);
    DataBase::CreateConnection();
    ?>

     

  • 相关阅读:
    第一次练习总结
    第一次上机总结
    写在程序组干活之前
    虚拟机Centos7安装Mysql
    第一章 开发体验
    如何优雅的移植JavaScript组件到Blazor
    Asp.net core中RedisMQ的简单应用
    docker容器安装mysql
    Centos 8安装Docker
    c# 定时启动一个操作、任务(版本2)
  • 原文地址:https://www.cnblogs.com/wanshutao/p/4447534.html
Copyright © 2011-2022 走看看