php7中的构造函数

article/2025/9/26 1:56:47

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在用php7进行开发的时候,遇到了:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; index has a deprecated constructor

这个提示本来很正常,看起来也很容易理解,而且很多介绍php7的文章中都有提到过,那就是php7中与类同名的函数作为构造函数的时候会抛出这个提示,推荐使用__contruct作为构造函数,像ecshop之类的代码就有很多用与类同名的函数作构造函数的情况。

 

但我发现thinkphp的控制器中仍然有index控制器中存在index方法的情况,使用的时候并没有发现会抛出这个提示来。

于是去翻代码,但资料,测试,发现有这么几种情况

1.一个类中如果同时存在__construct(非父类的)和与类名同名函数,则__construct是构造函数,而同名函数则当作普通函数;

2.如果一个子类的父类中有__construct(即使是public)但子类中没有,而子类中有同名函数,而同名函数是构造函数。如果你用get_class_methods($this);获取类的方法会发现其实是有__construct方法的;

3.php官方手册中有这么一句话:

自 PHP 5.3.3 起,在命名空间中,与类名同名的方法不再作为构造函数。这一改变不影响不在命名空间中的类

测试一些猜想的时候一般不会去使用命名空间,看thinkphp的源码也没有哪里有作什么特殊处理,一直停留在前两种情况,很是不解。

还好在php官方手册中找到了第三种情况,也终于理解了为什么在thinkphp中没有那个提示,因为thinkphp使用了命名空间。

 

转载于:https://my.oschina.net/agui1989/blog/851804


http://chatgpt.dhexx.cn/article/ZBdfVhrA.shtml

相关文章

PHP之析构函数

随着面向对象编程的普遍展开,面向对象展现了其中很多有趣的问题。相信很多初学者学习php面向对象时会接触两个函数,构造函数与析构函数。构造函数似乎用的更多,析构函数用的较少(相对初学者有限编程经验而言,笔者也是如…

PHP构造函数(方法)的使用

什么是构造方法(函数)? 构造(函数)方法是类中的一个特殊方法。当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须是 __construct()。 在一个类中只能声明一个构…

构造函数

构造函数在类体里的声明形式: 类名(形参一,形参二,…);//也可以没有形参 构造函数的定义形式: 假设数据成员为x1,x2,…x,类外定义构造函数时通常有3种形式&am…

php类中的构造函数与析构函数

1.php类中的构造函数a.构造函数的定义及创建 构造函数的英文是constructor,通常是和析构函数配合使用的。 所谓构造函数,就是在我们这个类运行之初需要初始的东东,执行类中所有方法之前,无需首先执行的方法。看个例子,…

PHP笔记-PHP中构造函数要注意的地方

背景 这里记录下PHP中构造函数的注意点。 这里和C/C、Java不一样&#xff0c;比较灵活&#xff0c;估计是有隐式调用&#xff0c;在此不研究了&#xff0c;记录下注意的地方。 演示 如下项目&#xff1a; Base.php <?phpclass Base{public function __construct(){ech…

php构造方法(函数)基础

什么是构造函数呢?在回答这个问题之前&#xff0c;我们来看一个需求&#xff1a;我们在创建人类的对象时&#xff0c;是先把一个对象创建好后&#xff0c;再给他的年龄和姓名属性赋值&#xff0c;如果现在我要求&#xff0c;在创建人类的对象时&#xff0c;就指定这个对象的年…

ffmpeg编译安装

ffmpeg编译安装 前言一、下载ffmpeg二、编译安装2.1 Linux编译ffmpeg2.2 Windows编译ffmpeg 总结 前言 Fmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它…

在Windows上安装FFmpeg程序

原文地址:http://helloway.blog.51cto.com/7666282/1642247 FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。 该程序只有命令…

【最新】windows电脑FFmpeg安装教程手把手详解

【最新】FFmpeg安装教程手把手详解 写在前面一、下载&解压二、配置环境变量1、配置系统环境变量 三、验证额外补充 写在前面 本文以 Windows 64 位操作系统为例演示 一、下载&解压 打开 FFmpeg 官网&#xff0c;选择下载。 选择 Windows 平台&#xff0c;下面有两…

FFmpeg 安装与使用

官方介绍&#xff08;可忽略&#xff09; FFmpeg是处理多媒体内容&#xff08;如音频、视频、字幕和相关元数据&#xff09;的库和工具的集合。它功能非常强大&#xff0c;包括视频裁剪、视频格式转换、视频截图、视频添加水印等。 它包含可供应用程序使用的libavcodec、libavu…

ffmpeg安装教程及配置环境

1.下载ffmpeg安装包 官网如下&#xff1a;https://ffmpeg.org/download.html 记住这个目录&#xff1a;E:\ffmpeg-4.4-essentials_build\bin 4. 5.打开 winR&#xff0c;cmd命令下检验 输入ffmpeg 此时安装&#xff0c;以及配置成功

Mac版 下载安装FFmpeg

​​​​​​​​​​​​​​本篇是在mac版下安装FFmpeg的&#xff0c;如果你的电脑为windows版的话&#xff0c;请移步到这篇文章ffmpeg下载安装教程及介绍_水w的博客-CSDN博客 目录 安装FFmpeg 方式一&#xff1a;官网下载安装 方式二&#xff1a;使用Homebrew安装FFmpeg…

Windows安装ffmpeg

目录&#xff1a; 一、官网下载ffmpeg安装包1、打开官网下载&#xff08;用迅雷下载会比谷歌浏览器下载快一点&#xff09;2、解压到想要安装的文件夹 二、添加环境变量1、打开安装目录下的bin文件夹&#xff0c;复制路径2、打开环境变量页面 三、测试 一、官网下载ffmpeg安装包…

2.ffmpeg安装(Ubuntu20.04 )

Ubuntu20.04安装ffmpeg 1.下载源码包2.解压安装依赖库 3.编译3.1 安装 yasm3.2 配置3.3 编译安装 4.添加环境变量4.1 修改环境变量4.2 在文件中添以下内容。4.3 设置生效 5.验证是否成功5.1 无法打开共享库文件5.2 测试是否配置成功 注意 1.下载源码包 进入官网 https://ffmpe…

ffmpeg的安装和使用教程

ffmpeg的安装和使用教程 1.进入ffmpeg官网&#xff0c;下载相应的安装包,windows和mas以及linux&#xff0c;32位和64位版本! 2.将下载好的压缩包进行解压 3.进入bin目录&#xff0c;复制好bin目录的路径 4.右击此电脑&#xff08;win7就是计算机&#xff09;&#xff0c;选择…

ffmpeg的安装与使用

一、ffmpeg的简介 FFmpeg是一个自由软件&#xff0c;可以运行音频和视频多种格式的录影、转换、流功能&#xff0c;包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库&#xff0c;以及libavformat——一个音频与视频格式转换库。 主要参数 -i——设置输入档名…

三、FFmpeg安装

1. FFmpeg介绍 FFmpeg是一个完整的、跨平台的解决方案&#xff0c;用于记录、转换和流化音/视频。 FFmpeg 采用 LGPL 或 GPL 许可证&#xff0c;提供了录制、转换及流化音/视频的完整解决方案。其包含了非常先进的音&#xff0f;视频编解码库 libavcodec。 FFmpeg 是在 Linux …

windows ffmpeg安装部署

目录 安装包下载 解压安装包 配置环境变量 总结 安装包下载 作为音视频处理重要软件ffmpeg&#xff0c;是一定要装好的。 windows安装包下在链接&#xff1a;资源包地址 解压安装包 下载安装包后解压到需要的目录。 配置环境变量 找到控制面板 -> 点击系统 -> 点击…

ffmpeg安装及使用

下载 下载地址&#xff1a;https://ffmpeg.org/download.html 然后按照下图点击&#xff0c;找到Release部分下载一个即可。 安装 所谓安装就是解压并配置“path”环境变量 将安装包解压至任意目录&#xff0c;比如我这里是D:\Program\ffmpeg-5.0.1-full_build 按照以下顺…

ffmpeg详细安装教程,亲测有效!

这两天整理好用的录屏软件&#xff0c;发现了Captura这个软件&#xff0c;软件本身的安装很简单&#xff0c;但由于Captura需要依赖ffmpeg&#xff08;一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序&#xff09;&#xff0c;而ffmpeg在安…