如果return为空,则返回一个空字符串

时间:2020-05-27 09:12:24

标签: php

所以我有以下方法可以将响应发送回我的A​​PI,但是我有一个小问题需要解决。

public function transform($employee)
    {
        return [
            'birthday' => $employee['birthday']->format('Y-m-d'),
            'hire_date' => $employee['hire_date']->format('Y-m-d'),
        ];
    }

'birthday' and 'hire_date'返回值,但是如果没有值,有没有办法我可以定义一个空字符串?

类似这样的事情:'birthday' => $employee['birthday']->format('Y-m-d') :? '',

3 个答案:

答案 0 :(得分:1)

是的,您可以这样做:

public function transform($employee)
    {
        return [
            'birthday' => !empty($employee['birthday']->format('Y-m-d')) ? $employee['birthday']->format('Y-m-d') : "",
            'hire_date' => !empty($employee['hire_date']->format('Y-m-d')) ? $employee['hire_date']->format('Y-m-d') : "",
        ];
    }

另外,如果您运行的是php 7或更高版本,则可以像这样使用null coalescing operator

public function transform($employee)
    {
        return [
            'birthday' => $employee['birthday']->format('Y-m-d') ?? ""
            'hire_date' => $employee['hire_date']->format('Y-m-d') ?? "",
        ];
    }

您可以在php documentation

中找到更多信息

PS。如注释中指出的那样,日期format函数将始终返回某些内容,如果$employee['birthday']为空,则将发出警告。因此最好像这样将支票放在$employee['birthday']上:

            'birthday' => !empty($employee['birthday']) ?
                $employee['birthday']->format('Y-m-d') "",

答案 1 :(得分:0)

由于当没有值存在时(显然不是空的),这些值存储为@Pointcut("within(my.package.MyTargetClass) && execution(* a01(*)) && args(request)") public void callAtMyServiceSecurityAnnotation(Mono<?> request) {} ,因此我们可以尝试'0000-00-00'来解决这个问题。

strcmp()

答案 2 :(得分:0)

有时候,将内容分解为易于阅读的简短命令会更容易。

public function transform($employee)
    {
        $birthday   = $employee['birthday'];
        $hire_date  = $employee['hire_date'];

        $birthday  = (!empty($birthday)) ? $birthday->format('Y-m-d') : '';
        $hire_date = (!empty($hire_date)) ? $hire_date->format('Y-m-d') : '';

        return [            
            'birthday'  => $birthday,
            'hire_date' => $hire_date,
        ];
    }

如果您希望代码不重复,则可以执行以下操作:

public function transform($employee)
    {
        $dates = [$employee['birthday'], $employee['hire_date']];

        foreach ($dates as $index => $date) {       
             $dates[$index] = !empty($date) ? $date->format('Y-m-d') : '';
        }

        return $dates;  

    }

如果要增加要处理的日期数,只需将日期添加到dates数组中即可。无需进一步更改。