寻求帮助以修复PHP脚本错误



我在网站构建器设置后遇到了这个意外的错误。由于我不熟悉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:?>应该丢失的东西。在大多数情况下,它仍然有效,但是再次将其取出是更好的方法。

相关内容

  • 没有找到相关文章

最新更新