zoukankan      html  css  js  c++  java
  • 方法名同类名相同如果没有__construct,会被当做构造函数。

    简介
    本文主要罗列些例子,看看当php类名和函数名重名时,php是如何处理的
    例子
    <?php

    class TestObject
    {
    public $subject;
    private $message = 'test' . PHP_EOL;

    public function testObject()
    {
    echo $this->message;
    }
    }

    $instance = new TestObject();
    $instance->testobject();
    输出
    php test1.php
    test
    test
    原因?
    在php4时,构造函数用的是与类同名的函数来进行构造这个动作,且由于类名和方法不区分大小写。 所以在上述例子中,构造函数执行了一个echo, 方法也被执行了一次。故有两个test输出。 下面我们通过例举各种组合,来体验一下效果。
    只有一个构造函数
    <?php

    class TestObject
    {
    public $subject;
    private $message = 'test' . PHP_EOL;

    public function testObject()
    {
    echo $this->message;
    }
    }

    $instance = new TestObject();
    //$instance->testobject();
    输出
    php test2.php
    test
    一次输出
    指定2个方法时
    <?php

    class Test_Object
    {
    public $subject = 'subject' . PHP_EOL;
    private $message = 'test' . PHP_EOL;

    public function test_object()
    {
    echo $this->message;
    }

    public function test_subject()
    {
    echo $this->subject;
    }
    }

    $instance = new Test_Object();
    $instance->test_object();
    $instance->test_subject();
    输出
    php test3.php
    test
    test
    subject
    构造函数和同名方法各输出一次,不同名方法输出一次
    类名与方法名不同时
    <?php

    class Test_Object
    {
    public $subject = 'subject' . PHP_EOL;
    private $message = 'test' . PHP_EOL;

    public function testMessage()
    {
    echo $this->message;
    }
    }

    $instance = new Test_Object();
    $instance->testMessage();
    输出
    php test4.php
    test
    不同名方法输出一次
    类名和方法名一致时
    <?php

    class Test_Object
    {
    public $subject = 'subject' . PHP_EOL;
    private $message = 'test' . PHP_EOL;

    public function test_object()
    {
    echo $this->message;
    }
    }

    $instance = new Test_Object();
    $instance->test_object();
    输出
    php test5.php
    test
    test
    构造函数和同名方法各输出一次
    ---------------------
    作者:huuinn
    来源:CSDN
    原文:https://blog.csdn.net/huuinn/article/details/79294638
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    系统数据查询耗时优化解决方案
    Mybatis逆向工程
    微服务架构下的分布式数据管理
    分布式或微服务架构中的分布式锁应用
    word 常用宏代码
    office2003?2007共存?版本各自打开的解决方案
    word域3
    2014新版《安全生产法》测试题
    Excel与Word套打功能使用技巧及EXCEL数据处理成绩
    word域2
  • 原文地址:https://www.cnblogs.com/caicaizi/p/11051226.html
Copyright © 2011-2022 走看看