【问题标题】:PHP 7 : Warning: expects parameter 1 to be string, array givenPHP 7:警告:期望参数 1 是字符串,给定数组
【发布时间】:2021-02-22 10:45:44
【问题描述】:

我想点击一个链接并转换链接中收到的$data。
但是,显示以下错误。它适用于 PHP 5.x。
有什么办法吗?
$data需要是一个字符串,但是它变成了一个数组。
错误

Warning: mb_convert_kana() expects parameter 1 to be string, array given

MbConvertKanaExtension.php


    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // mb_convert_kana_option
        if (isset($options['mb_convert_kana_option'])) {
            $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($options) {
                $data = $event->getData();

                //ErrorCode
                $data = mb_convert_kana($data, $options['mb_convert_kana_option'], 'UTF-8');
                $event->setData($data);
            });
        }
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'mb_convert_kana_option' => 'aKV',
        ));
    }

树枝

<a href="{{ path('ahi_sp_admin_hq_article_index', {"q": {"articleType": "coordinate"}}) }}">

var_dump($data);的结果

array(1) { ["articleType"]=> string(9) "recommend" } NULL string(9) "recommend" string(0) "" NULL NULL NULL

版本
PHP v7.3.25

【问题讨论】:

  • 只是为了记录,它在 PHP 5 中并没有“正常工作”,请检查 here。您可能还更改了其他内容(至少,您的错误报告设置)。
  • @El_Vanja 感谢您的评论。嗯,PHP7 只是将问题可视化了。

标签: php php-7.3


【解决方案1】:

$event-&gt;getData() 似乎返回了一个关联数组。

根据您显示的转储,如果您只想从中获取“articleType”属性的字符串值,那么只需:

mb_convert_kana($data["articleType"], ...

另外,mb_convert_kana 返回一个字符串,因此您可能希望将其放回$data 数组中,而不是完全覆盖它。所以..

$data["articleType"] = mb_convert_kana($data["articleType"], ...

可能是您正在寻找的。​​p>

【讨论】:

  • 感谢您的回答。我试过了,但我得到了代码 mb_convert_kana 的错误 Warning: Illegal string offset'articleType'。有什么改进计划吗?
  • @scottie320 我提供的代码不会引发该错误。演示:sandbox.onlinephpfunctions.com/code/…。如果您遇到问题,那么我建议 a) 您没有正确实施我的建议,或者 b) $data 实际上并不包含 array(1) { ["articleType"]=&gt; string(9) "recommend" },正如您在问题中显示的那样。
  • 我明白了。其实我以为是不相关的,有一部分没有包含在var_dump的结果中。你能再检查一遍吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多