简介
本文主要罗列些例子,看看当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
版权声明:本文为博主原创文章,转载请附上博文链接!

方法名同类名相同如果没有__construct,会被当做构造函数。的更多相关文章

  1. php获取当前方法名和类名

    php提供的一些系统常量可以完成这些 php获取当前方法名(函数名) __FUNCTION__ php获取当前类名 __CLASS__ 或者 get_class($this); php获取本类所有的方 ...

  2. Java 中 方法名或类名 变更 同时 更新 所有引用的 类名或方法名 的解决方案

    选中 类名,或属性名  Ctrl + 1  然后选择 理新当前文件,还是更新整个工作空间,然后修改对应的类名或方法名  回车即可. 如果.有SVN 版本在控制着,则 会提示,然后把对应的文件 锁定 再 ...

  3. Eclipse新导入的项目中ctrl+点击指定方法名或类名没有反应,不能跳转问题

    项目没有转成java项目 解决方法:右击项目名---选择properties----点击Project Facets,这样就可以实现ctrl+左键点击跳转了. 转成java项目后会报错 解决办法:选中 ...

  4. php 类名和方法名相同(构造函数)

    //php 5.6class father{ public function __construct() { echo __METHOD__; }} class son extends father{ ...

  5. PHP大小写:函数名和类名不区分,变量名区分

    PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以这里总结一下. 但我不是鼓励大家去用这些规则.推荐大家始终坚持“大小写敏感”,遵循统一的代码规范. 1. 变量名区分大小写 <?p ...

  6. Java学习-024-获取当前类名或方法名二三文

    今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中...虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法 ...

  7. Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件

    Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的行数并保存日志文件 在开发中,我们常常用打印log的方式来调试我们的应用.在Java中我们常常使用方法System.out ...

  8. Java: 获取当前执行位置的文件名/类名/方法名/行号

    在 JAVA 程序有时需要获取当前代码位置, 于是就利用 Thread.currentThread().getStackTrace() 写了下面这个工具类, 用来获取当前执行位置处代码的文件名/类名/ ...

  9. 反射的妙用-类名方法名做参数进行方法调用实例demo

    首先声明一点,大家都会说反射的效率低下,但是大多数的框架能少了反射吗?当反射能为我们带来代码上的方便就可以用,如有不当之处还望大家指出 1,项目结构图如下所示:一个ClassLb类库项目,一个为测试用 ...

随机推荐

  1. 在pycharm中右键运行,只有unnitest,HtmltTestRunner不生成报告

    https://blog.csdn.net/lufangbo/article/details/79308362 有时候在编完脚本开始运行时,发现某个py脚本右键运行的选项不是run,二是run in ...

  2. WPF 依赖属性前言

    WPF 依赖属性前言 ​ 在.net中,我们可以属性来获取或设置字段的值,不需要在编写额外的get和set方法,但这有一个前提,那就是需要在对象中拥有一个字段,才能在此字段的基础上获取或设置字段的值, ...

  3. scrapy随机切换user-agent

    使用github的 scrapy-fake-useragent 不用自己改源码继承自带的userAgent中间件  只需要安装后增加配置即可 https://github.com/alecxe/scr ...

  4. QQ推广工具

    目前比较简单易用的QQ推广工具有:一键加群.在线聊天 一.一键加群 1.官网链接 http://qun.qq.com/join.html 2.使用 1登录自己的QQ 2创建一个想要作为推广的群 3选择 ...

  5. R语言包在linux上的安装等知识

    有关install.packages()函数的详见:R包 package 的安装(install.packages函数详解) R的包(package)通常有两种:1 binary package:这种 ...

  6. 【问题】如何在Linux与Windows间共享文件

    实验环境 Linux LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS L ...

  7. Alpha2的项目互评互测

    目录 @(Alpha2项目测试) 这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求的链接 团队名称 你的代码我的发 这个作业的目标 其他参考文献 软件测试用例 姓名 学号 团队名称 李涵 ...

  8. Codeforces F. Vus the Cossack and Numbers(贪心)

    题目描述: D. Vus the Cossack and Numbers Vus the Cossack has nn real numbers aiai. It is known that the ...

  9. Windows环境下安装和使用nginx1.16.0

    nginx是一款开源的HTTP服务器和反向代理服务器,nginx可以作为Web服务器提供HTTP访问功能,类似于Apache.IIS等.目前nginx已经在国内外很多网站作为Web服务器或反向代理服务 ...

  10. 案例实战之如何写一个webpack plugin

    案例实战之如何写一个webpack plugin 1.写一个生成打包文件目录的file.md文件 // 生成一个目录项目目录的文件夹 class FileListPlugin { constructo ...