11、PHP面向对象1

这篇具有很好参考价值的文章主要介绍了11、PHP面向对象1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、PHP的面向对象与其他语言类似,但也有不同。

  • PHP访问成员变量时,需要用“->”,而不能用“.”,访问成员函数时,需要用“->”,而不能用“.”。操作符“::”可以在没有任何声明实例的情况下访问类中的静态成员,必须用static定义。
  • PHP用new实例化对象时,类名后面的括号可以省略。new className();new className都是可以的,当然构造函数是需要没有参数的。

2、在类中,用var定义成员变量,var定义的成员变量都是公开的。

3、创建子类时用extends继承父类。

一个类的例子如下:

<?php
class Site{
    //成员变量
    var $url;//用var定义成员变量,为公有变量
    var $title;

    //成员函数
    function setUrl($par){
        $this->url=$par;
    }
    function getUrl(){
        echo $this->url.PHP_EOL;
    }
    function setTitle($par){
        $this->title=$par;
    }
    function getTitle(){
        echo $this->title.PHP_EOL;
    }
}

class subSite extends Site{
    var $category;
    function setCat($par){
        $this->category=$par;
    }
    function getCat(){
        echo $this->category.PHP_EOL;
    }
    function getUrl(){//方法重载
        echo $this->url.PHP_EOL;
        return $this->url;
    }
    function getTitle(){
        echo $this->title.PHP_EOL;
        return $this->title;
    }
}

$taobao=new Site;//用默认的构造函数,可以不加括号
$google=new Site();

$taobao->setTitle("淘宝");//只能用箭头访问成员函数
$google->setTitle("谷歌搜索");

$taobao->setUrl("taobao.com");
$google->setUrl("google.com");

$taobao->getTitle();
$google->getTitle();

$taobao->getUrl();
$google->getUrl();
?>

输出如下:

11、PHP面向对象1,世界上最好的编程语言,团看,php

4、 PHP自己实现构造函数时,用__construct。注意:前缀时两根下划线。

<?php
class myClass{
    function __construct(){//两根下划线
        print "构造函数\n";
        $this->name="myClass";
    }
    function __destruct(){
        print "销毁".$this->name."\n";
    }
}
echo "start".PHP_EOL;
$obj=new myClass();
echo "end".PHP_EOL;
?>

输出结果:构造函数在实例化对象时调用,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。

11、PHP面向对象1,世界上最好的编程语言,团看,php

5、类中的方法可以被定义为公有,私有或受保护。如果没有设置这些关键字,则该方法默认为公有。 

6、使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

接口中定义的所有方法都必须是公有,这是接口的特性。

类中必须实现接口中定义的所有方法。

类可以实现多个接口,用逗号来分隔多个接口的名称。

<?php
interface iTemplate{
    public function setVariable($name,$var);
    public function getHtml($template);
}
class Template implements iTemplate{
    public  static $var1=1;//静态属性
    public   $var2=3;
    public $vars=array();
    public function setVariable($name,$var){
        $this->vars[$name]=$var;
    }
    public function getHtml($template){
        foreach ($this-vars as $name => $value) {
            $template=str_replace("{'.$name.'}",$value,$template);
        }
        return $template;
    }
}
$iT=new Template;
$iT->setVariable("golden states","curry");


echo $iT::$var1.PHP_EOL;//静态属性用实例访问,有$符号
echo Template::$var1.PHP_EOL;//静态属性用类名访问$符号
echo $iT->var2;//箭头后面没$。
print_r($iT->vars);//访问数组
var_dump($iT->vars);
?>

7、PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。

  • public(公有):公有的类成员可以在任何地方被访问。
  • protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。
  • private(私有):私有的类成员则只能被其定义所在的类访问。
<?php
class myClass{
    public $public ='public';
    protected $protected='protected';
    private $private='private';
    function printHello(){
        echo $this->public.PHP_EOL;
        echo $this->protected.PHP_EOL;
        echo $this->private.PHP_EOL;
    }
}
$o=new myClass;
echo $o->public;
//echo $o->protected;
//echo $o->private;
$o->printHello();

class subClass extends myClass{
    protected $protected="sub protected";
    function printHello(){
        echo $this->public.PHP_EOL;
        echo $this->protected.PHP_EOL;//输出子类的protected
        echo $this->private.PHP_EOL;
    }
}
$o2=new subClass();
echo $o2->public;
//echo $o2->private;
//echo $o2->protected;
$o2->printHello();
?>

 文章来源地址https://www.toymoban.com/news/detail-603689.html

到了这里,关于11、PHP面向对象1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JAVA】面向对象的编程语言(继承篇)

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 在之前的文章中,我们介绍过面向对象的编程语言,今天我们就来就进入到JAVA面对对象的编程世界,今天我们主要来介绍面向对象的编程范式中一个重要的概念——继承。 继承是java面向对象编程技术的一块基石,因为

    2024年02月09日
    浏览(35)
  • 【跟小嘉学 Rust 编程】十七、面向对象语言特性

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月10日
    浏览(76)
  • 【学习笔记】C#基础 - 由C/C++衍生出来的面向对象的编程语言

    1、基本语法 2、类的命名 必须以 A-Z / _ / @ 开头,不能是数字,之后可以跟 A-Z 、 0-9 、 _ 、 @ 不能包含任何空格或特殊符号,比如 ?-+!#%^*()[]{}.;:\\\"\\\'/ 不能与同名(除非添加 @ 前缀,@不作为标识符本身的一部分),不能与类库同名 必须区分大小写(PascalCase命名法) 3、关

    2024年02月07日
    浏览(45)
  • 11、PHP面向对象1

    1、PHP的面向对象与其他语言类似,但也有不同。 PHP访问成员变量时,需要用“-”,而不能用“.”,访问成员函数时,需要用“-”,而不能用“.”。操作符“::”可以在没有任何声明实例的情况下访问类中的静态成员,必须用static定义。 PHP用new实例化对象时,类名后面的括

    2024年02月16日
    浏览(34)
  • 【PHP】PHP的面向对象编程

    PHP面向对象编程是PHP编程的一个重要方向,它通过将数据和操作封装在对象中,使得代码更加模块化、可重用性和易于维护。本文将介绍PHP面向对象编程的基本概念、核心思想和常见应用,并探讨使用PHP面向对象编程时需要注意的问题。 一、概述 PHP面向对象编程是一种编程

    2024年02月11日
    浏览(41)
  • PHP的面向对象编程(OOP)特性是什么?

    PHP 的面向对象编程(OOP)特性使得开发者能够以更模块化、可维护的方式组织和设计代码。以下是 PHP 中面向对象编程的一些主要特性: 类和对象: 类是一个抽象的蓝图,用于定义对象的属性(成员变量)和方法(成员函数)。对象是类的实例,具有类定义的属性和方法。

    2024年02月04日
    浏览(31)
  • Python基础-11 面向对象编程_各种方法

    python本身支持类的动态属性 直接使用等号=,给一个属性赋值 如果这个属性存在,则会修改该属性的值 如果这个属性不存在,则会给对象添加一个新的属性及对应的值 如果需要禁止动态添加类的属性,可以使用 __slots__ 属性,如下示例 这个属性直接定义在类中,是一个元组,用来规定

    2023年04月17日
    浏览(34)
  • 面向对象(最好理解 最美观 最简洁)

    1.类,模板 2.对象(可以使用类创建对象 实例化 初始化) 继承:子类继承父类 封装: 数据的权限与保密 多态:同一接口不同实现 继承(可将公共方法抽离,提高复用,减少冗余) 封装(减少耦合 不该外漏的外漏 利于数据 接口的权限管理    _下划线开头一般是私有属性

    2024年02月11日
    浏览(37)
  • 两万字长文世界编程语言大串讲

    TL;DR 本文收录在《大道至简,给所有人看的编程书》第 3 章,讲述了编程语言的发展历史,以及各种编程语言的特点。本文是一篇长文,大约两万字,建议在电脑上阅读。 公认的世界上“第一位给计算机写程序的人”叫 Ada lovelace(艾达·洛芙莱斯),她是英国著名诗人乔治

    2024年02月01日
    浏览(31)
  • 探索C语言的数据类型:解密编程世界的核心秘密

    ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog (1) 常量的概念 常量顾名思义就是无法改变的量,比如一周有7天,一天有24小时,这些都是无法改变的量。 (2) 常量的分类 整数常量:1,2,3,-1,-2等 小数

    2024年02月19日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包