我在网站构建器设置后遇到了这个意外的错误。由于我不熟悉CSS或PHP脚本,因此我看不到应该在第8行和第19行上的错误(根据500个错误代码(。
在脚本末尾没有关闭线(?>(,现在我添加了它。您可以帮助我解决其他错误吗?预先感谢您的帮助
<?php
/**
* @see https://github.com/zendframework/zend-diactoros for the canonical source repository
* @copyright Copyright (c) 2018 Zend Technologies USA Inc. (https://www.zend.com)
* @license https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
*/
declare(strict_types=1); // Error highlighted issue with this line.
namespace ZendDiactoros;
/**
* Create an uploaded file instance from an array of values.
*
* @param array $spec A single $_FILES entry.
* @throws ExceptionInvalidArgumentException if one or more of the tmp_name,
* size, or error keys are missing from $spec.
*/
function createUploadedFile(array $spec) : UploadedFile // Error highlighted issue with this line.
{
if (! isset($spec['tmp_name'])
|| ! isset($spec['size'])
|| ! isset($spec['error'])
) {
throw new ExceptionInvalidArgumentException(sprintf(
'$spec provided to %s MUST contain each of the keys "tmp_name",'
. ' "size", and "error"; one or more were missing',
__FUNCTION__
));
}
return new UploadedFile(
$spec['tmp_name'],
$spec['size'],
$spec['error'],
isset($spec['name']) ? $spec['name'] : null,
isset($spec['type']) ? $spec['type'] : null
);
}
?>
给定错误是唯一由php7 代码组成的行,问题可能是php的过时版本。
有两种解决方案:更好的解决方案是将您的PHP版本升级到7.2;询问您的托管提供商是否能够在这方面容纳您。
您的其他选项可能更快:只需删除PHP7代码即可。问题是关于这些部分的:
declare(strict_types=1);
和
(...) : UploadedFile
这两种都可以在没有后果的情况下删除。
简而言之:删除第8行,然后用以下方式替换第19行
function createUploadedFile(array $spec)
编辑:
做得很好,您可能会考虑添加此信息:
* @return UploadedFile
与@param和@throws的线条之间。这是: UploadedFile
的php5.x替代方案。
ps:?>应该丢失的东西。在大多数情况下,它仍然有效,但是再次将其取出是更好的方法。