问题标签 [php-7.3]

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.

0 投票
1 回答
753 浏览

symfony - Symfony:渲染必须与 Symfony\Bundle\FrameworkBundle\Controller\AbstractController::render 兼容

我正在关注教程:在这里,当我更改为 AbstractController 时,出现以下错误:

所以我检查了原始方法并添加了缺少的参数,但现在我得到了

这是我的代码:

我做错了什么?

0 投票
1 回答
3371 浏览

php - 升级到 PHP 7.3 后的 CodeIgniter 问题

我已将我的 PHP 升级到 7.3.4 版以安装 CodeIgniter 3.1.10。在此之后,我注意到我网站的某些部分不再像以前那样工作(使用 PHP 5.6)。

其中一个用例是当我输入错误的 URL 时,如下所示:

www.abc.com/nl-be/antwerpen/this-is-a-bad-url

通常这会转到我的 404 页面,但现在我首先收到以下错误:

代码是:

我设法使用下面的代码找到了解决这个问题的方法(这是正确的吗?):

检查 $CI 的值后,这次它不会为空,而是会被填写。此时,在转到相同的错误 URL 后,我收到以下错误消息:

该行 CodeIgniter.php 中的代码包含:

这个错误特别奇怪,因为我的 Error 类中有一个 my404 方法:

编辑:我的网址看起来像www.<sitename>.com/<languagesegment>/<optionalcityname>/<pathcontroller&function>

如果在 URL 中填写了可选的城市名称,则整个网站都以城市颜色和徽标等标记。如果省略,则显示“正常”网站。

访问“正常”站点时,我的 404 页面会正确显示。

0 投票
0 回答
29 浏览

symfony4 - 更新时删除空属性

我对 FOSElasticaBundle 有疑问,在 elasticsearch 中清空/删除属性。

我在跑:

Friendsofsymfony/elastica-bundle v5.0.3 ruflin/elastica v6.1.1 jms/serializer-bundle v3.2.0 jms/serializer v2.3.0 symfony v4.2.7 elasticsearch v6.7.1

当我通过教义保存对象时。它被正确序列化并被发送到elasticsearch。每个更新也在工作:

但是,当我清除表单中的 company_tagline 并将其保存在数据库中时,正如预期的那样。现在序列化后,由于没有序列化空字符串,因此缺少 company_tagline。所以批量更新看起来像这样:

现在查询 elasticsearch 时,company_tagline 仍然存在:

我认为那是因为doc_as_upsert只更新了适当的属性。因此,由于请求中缺少 company_tagline,因此它不会被更新/删除。

有没有办法对条目进行硬更新而不是更新它?

0 投票
2 回答
353 浏览

php - 使用常量作为函数属性

我有一个关于函数声明的问题。我想要类似的东西:

https://www.php.net/manual/en/function.password-hash.php

当我创建一个函数时,我想声明一些可能性,例如:

  • PASSWORD_DEFAULT = 1
  • PASSWORD_BCRYPT = 2
  • PASSWORD_ARGON2I = 3
  • PASSWORD_ARGON2ID = 4

然后,当用户使用该函数时,他只需设置常量或常量的值。

其实我这样做:

它完成了这项工作,但我不得不在使用常量名之前编写类名。然后,如果我这样做,我就可以访问该类的所有常量。

我想,我在函数级别谈论诸如常量之类的东西。

非常感谢 :-)

PS:有没有办法为函数属性做一个声明类型,比如 int|object|string ?其实在这种情况下我没有输入提示,对于对象,我需要指定一个类或接口,有时我接受许多对象来调用 __toString() 魔术类,然后我接受所有对象。

0 投票
0 回答
273 浏览

php - 升级到 PHP 7.3 后 Substr 错误数据表

我最近从 PHP5.6 升级到 7.3.4 ,在我的网站上我有一个页面,其中包含一个有很多空缺的数据表。

我使用 AJAX 加载我的数据表。在这个函数中,我有以下代码:

以及一些其他代码来填充 DataTables 中列中的一些变量。

这在 php 5.6 上效果很好。升级后我们注意到(我仍然不确定为什么,我无法确定它)我的数据表会返回一条警告消息,其中包含一条错误消息,指出 JSON 不正确。

经过大量调试我们发现如果我们将代码更改为:

DataTables 将像以前一样再次工作。我知道我在上面粘贴的 IF 不再有意义,但我希望再次拥有与以前相同的功能,长字符串被切断并在末尾附加三个点。

我尝试阅读 PHP 更改日志以了解 substr 上的任何更改,但我唯一能找到的是:

substr() 和 iconv_substr() 现在返回一个空字符串,如果 string 等于 start characters long。

我认为这不能解释为什么代码停止工作。

谁能解释这种行为并知道如何处理这个问题并让我的子字符串像以前一样再次工作?

0 投票
1 回答
7811 浏览

php - php 7.3 下“continue”定位开关相当于“break”错误

我在 Digital Ocean 下的新 Ubuntu 16 实例上安装 laravel 5.8。我需要安装 php 7.2,为此我运行命令:

我很惊讶我找到了 php 7.3:

之后,我在作曲家安装时遇到错误:

谷歌搜索我发现这是一些特定的 php7.3 错误,我想知道这里可以决定哪个?降级到 php7.2(如果是的话怎么做更好?)

还是其他一些决定?

谢谢!

0 投票
2 回答
6783 浏览

php - 在动态链接库中找不到过程入口点_zend_hash_index_update@@24

当我启动 XAMPP 时,尝试加载 PHP 的 SQL Server 驱动程序时出现以下错误。

在动态链接库 D:\xampp\php\ext\php_sqlsrv_72_ts_x64.dll 中找不到过程入口点 _zend_hash_index_update@@24。

我已尝试下载 Microsoft SQL Server Driver 4.0 和 5.6 for php,并使用扩展目录中的 php_sqlsrv_7_ts_x64.dll 和 php_sqlsrv_72_ts_x64.dll 并将它们添加到 php.ini。

我发现这个帖子与这个错误有关:

IIS 上的 PHP 7:找不到 Call_user_function

在系统要求中,对于 MSSQL 驱动程序 4.0,它声明该驱动程序适用于 PHP 7.0+。在尝试 5.6 时,我发现这篇文章说它支持 PHP 7.3:

https://blogs.msdn.microsoft.com/sqlphp/2019/03/01/drivers-5-6-for-php-for-sql-server-released/

无论哪种方式,我仍然收到相同的错误。我还有什么需要检查的吗?

0 投票
3 回答
4607 浏览

laravel - 为 laravel 安装了代客,但为什么 dnsmasq 不能正确解析?

我已经在我的 Mac(Mojave)上使用自制软件为 laravel 安装了代客泊车。根据laravel 的文档,我现在应该能够 ping *.test,但是当我不断收到以下错误时:

ping:无法解析 foobar.test:未知主机

似乎是 dnsmasq 的问题。我已经遵循了这里的所有建议,但似乎没有任何帮助。

我可以看到 .test 的解析器似乎设置正常。下面是输出scutil --dns

我还可以看到 dnsmasq 似乎运行正常。这是来自的输出brew services list

我尝试过的其他事情:

  • 在阻止请求的情况下禁用我的防火墙。
  • 使用以下命令重新启动 dnsmasq(多次):sudo brew services restart dnsmasq
  • 使用重新安装代客valet install
  • 检查 /etc/hosts 中是否没有冲突的路径

有人有其他建议吗?

编辑:输出sudo brew services restart --verbose dnsmasq

编辑2:

我想我现在正在取得进展。我在 console.app 中检查了 dnsmasq,我看到了错误消息:

failed to open pidfile /usr/local/var/run/dnsmasq/dnsmasq.pid: No such file or directory

...导致我来到这里。原来我丢失了dnsmasq文件夹,cd /usr/local/var/run/所以我跑了sudo mkdir dnsmasq,现在 ping 实际上返回以下响应:

我不确定这意味着什么或它现在是否有效。

当我在浏览器中访问 foobar.test 时,This site can’t be reached即使我已经创建了一个具有该名称的项目并使用valet link foobar.

编辑 3:

通过关闭隐身模式(如此处所述),我现在可以正常工作,但是当我在浏览器中导航到 foobar.test 时仍然可以正常This site can’t be reached工作。

运行时出现以下错误curl foobar.test --verbose

编辑 4

输出cat /usr/local/etc/dnsmasq.conf | grep -i interface

0 投票
1 回答
56 浏览

arrays - 使用 foreach() 循环文件;打印前需要删除重复的结果

我正在编写一些代码来自动化 fontfaceobserver.js。对于目录中的每个字体文件,我需要获取字体系列名称,以便可以在 javascript 中打印它。一些字体共享相同的家族名称,后跟样式名称,例如cousine-webfont.woffcousine-italic-webfont.woff。我只想打印这些重复项的第一次出现并跳过其余部分。

我试过使用array_unique(),但我想我做错了。

期望的输出:

输出使用 $fam = $family[0];

如果使用 $fam = array_unique($family[0]); $fam = $family[0]; 结合 $fam = array_unique($fam);

如果 $fam = $family[0]; 结合使用 $fam = array_unique(array($fam));

我还尝试foreach()在主数组中使用第二个来生成一个临时数组,我可以从中提取独特的结果,但我没有成功。

0 投票
1 回答
68 浏览

centos - 我无法在我的 /var/www/html/magento2 下运行 composer install 命令

我在 Centos7 上设置 magento 服务器时遇到问题我在我的 centos ec2 实例中安装了 php 7.3

安装了 php 7.3.5,还尝试使用 $composer update 命令更新作曲家它不起作用

作曲家安装