问题标签 [php-7.4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - 在 PHP 7.4 中避免 getter 和 setter
由于 PHP 7.4 支持类型化的类属性:https ://www.php.net/manual/en/migration74.new-features.php#migration74.new-features.core.typed-properties 。看起来可以消除很多代码,特别是负责控制属性类型的实体和 DTO 中的 getter 和 setter。例如这样的片段:
可以重构为:
我认为这是个好主意吗?在进行这样的重构时我应该考虑什么?
php - 复选框总是被选中,即使没有被选中
我有一个复选框,无论我是否选中该框,它都会被选中。
以下是复选框当前的设置方式:
以下是捕获复选框值的方式:
我也尝试了以下代码:
我也尝试了隐藏字段的方法,但没有奏效。即使我删除了检查,关于为什么复选框显示标记的任何想法。
php - 在mongodb中插入php datetime成为一个空对象
我做了从 php 7.2 到 7.4 的更新,当我在 mongodb 中存储日期时间时发现了一个意外的行为
所以我试试
在 php 7.4 我有这个结果:
在 php 7.2 中我有
我怎样才能保持 php 7.2 的行为?
php - 资源的类型属性是什么
当我想存储资源(如 ftp-Stream 或 ftp-Buffer)时,类型化属性的正确类型是什么?
没有像Resource
. 所以以下方法不起作用:
导致 php 认为这是一个名为 Resource 的类。
php - 无法在 CentOS 7 上安装 phpMyAdmin
yum update -y
最近我们使用并发布了我们面临几个问题的CentOS 7 。
现在,即使在尝试安装旧版本的 php56 之后,它也给出了相同的结果。
尝试在 CentOS Linux 版本 7.7.1908(核心)上安装 phpMyAdmin 时出错
opentbs - TinyButStrong 给出了一个损坏的 DOCX 文件
我正在使用 TinyButStrong(带有 opentbs 插件)将 DOCX(XLSX/ODT/ODS)文件与 CSV 数据(文件上传)合并。在我的带有 libre-/openoffice 的 Linux 电脑上,生成的合并 DOCX 文件出现错误:“SAXException: [word/document.xml line 2]: Couldn't find end of Start Tag blip”
在我的客户的带有 windows 和 microsucks Word 的电脑上,它也给出了一个错误,但无法继续(打开一个空白文件)。
我正在使用 PHP7.3 和最新的 TBS 和 OpenTBS 插件。它以前可以工作,但在更新 PHP 或其他服务器软件后,它开始出现故障。(不知道确切的时间,因为我依赖于客户的反馈)。
我在 apache 错误/访问日志中没有看到任何错误(在调试模式下),我为此脚本创建了一个自定义日志,并执行了完整的脚本(直到合并的输出文件以及将数据插入到一个数据库)。我启用了 TBS 错误输出,但也没有显示任何错误。
当我在 Libreoffice 中打开源文档 DOCX 时,它没有错误,只有在合并后才存在错误。如果我然后打开合并的文档(在 Libreoffece 中并 scip 错误)它显示正确,我可以保存更多。我可以在 libreoffice 和 microsoft office 中打开它而不会出错。
- 调试命令:OPENTBS_DEBUG_XML_SHOW
- OpenTBS 版本:1.10.0
- TinyButStrong 版本:3.11.0
- PHP版本:7.3.15-3+ubuntu18.04.1+deb.sury.org+1YES
- 打开的文件:/tmp/phpgYoneg
- 文档类型的激活功能:openxml/docx
- 存档中已删除的文件:无
- 在存档中添加文件:
- 字/媒体/opentbs_added_1.png
- 字/媒体/opentbs_added_2.png
- 字/媒体/opentbs_added_3.png
- 存档中的修改文件:
- docProps/core.xml
- 字/文档.xml
- [内容类型].xml
- word/_rels/document.xml.rels
编辑:显然用字段改变图片:
并且array $data['image'] = '';
不起作用。
还不知道如何从这里着手,当输入为空时如何阻止 TinyButStrong 更改它?
所以我有点想法,有没有人建议如何找到和/或解决这个问题?谢谢。
php - 无论出于何种原因,PHP 7.4.4 都不想针对路径 php_mysqli.dll(Windows 10 Server 版本)
php - PHP 7.4 警告:从空值创建默认对象
apache 错误日志填满了这个。我不想抑制所有错误,并且明白我需要在某处显式创建一个对象,但语法让我无法理解。
警告:从第 22 行的 library/cegcore2/libs/helper.php 中的空值创建默认对象
php - PHP 7.4 类型化属性迭代
我刚刚发现关于 PHP 7.4 的一些“有点奇怪”的东西,我不确定这是否只是我遗漏了一些东西,或者它是否是一个实际的错误。主要是我对您的意见/确认感兴趣。
所以在 PHP 中,你可以像这样遍历对象属性:
现在,如果我们开始使用这样的强类型属性:
我们会得到不同的结果:
现在有什么不同:
当您不为强类型属性分配默认值时,它将是Uninitialized
类型。这当然是有道理的。问题是,如果它们以这样的方式结束,您将无法遍历它们,它们将被简单地省略 - 没有错误,没有任何东西,正如您在第二个示例中看到的那样。所以我只是无法访问它们。
这是有道理的,但想象一下你有一个这样的自定义请求/数据类:
你看到那个丑陋的字符串赋值了吗?如果我想让我的类上的属性可迭代,那么我必须:
- 掉落类型
- 分配虚拟值
我可能想要一个具有类型化属性的对象,其中没有任何值来循环它们并在有意义的情况下填充它们。
有没有更好的方法来做到这一点?是否有任何选项可以保留类型并保持可迭代而不必执行这种虚拟值可憎?
php - 如何优化我的特征代码以避免在子类中具有相同值的两个属性
我有这段代码,但我觉得有些不对劲。我必须为两个不同的属性分配相同的值。一个来自我的特质,另一个来自我现在的班级。
我希望我可以完全隔离我的特征,而不必在我的子类构造函数中进行此分配。
代码:
预先感谢您的建议