简介
本文主要罗列些例子,看看当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. MySQL Replication--多线程复制MTS

    多线程复制 多线程复制MTS(Mult-Threaded Slave Applier)指使用多个线程来并发应用二进制日志.在MYSQL5.6版本中,多线程复制基于schema来实现,将多个数据库下的事 ...

  2. 关于free的使用疑惑

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include "mainc26. ...

  3. OpenGL学习(1)—— 测试OpenGL环境是否搭建成功

    一个用来验证OpenGL(glfw + glad)环境是否搭建成功的测试代码 内容为生成一个小窗口 #include <glad/glad.h> #include <GLFW/glf ...

  4. 使用scrapy框架爬取全书网书籍信息。

    爬取的内容:书籍名称,作者名称,书籍简介,全书网5041页,写入mysql数据库和.txt文件 1,创建scrapy项目 scrapy startproject numberone 2,创建爬虫主程序 ...

  5. ThinkPHP支持的4种路由模式

    下面这个说法和示例,比较具有总结性.

  6. Python 生成 JWT(json web token) 及 解析方式

    一.关于 jwt 的原理及概念可以自行在网络上搜索了解一下,这里推荐一篇写的比较好的博客 深入了解Json Web Token之概念篇 另附 JWT 的官方文档: https://jwt.io/int ...

  7. BBS总结 --- django设计

    目录 1.调用模块使用 2.BBS中urls.py 3.django中配置 4.新学方法使用 5.BBS用到的知识点 1.调用模块使用 from django.db import models fro ...

  8. 完成下方的 which_date() 函数,并返回某一起始时间后特定一段时间的日期

    from datetime import datetime,timedelta import re def which_date(start_date,time): """ ...

  9. 基于Centos7+Flask+Nginx+uWSGI+Python3的服务器网页搭建教程

    之前完成了贴吧签到系统的搭建,笔者想将这个功能分享给更多人使用,所以尝试搭建了一个网页,一路遇到了很多问题,最终解决了,记录下过程分享给大家 首先安装 uWSGI ,和 Nginx 配套使用,具体用途 ...

  10. 2019-2020-1 20199302《Linux内核原理与分析》第八周作业

    一.上课学习笔记 1.shell作用:①运行程序 ②重定向(输入/输出重定向) ③可编程(写脚本) 执行一个c程序时,如果切进另一个进程,会进入该进程而切不回原进程,所以需要为调用的进程创一个子进程. ...