class ClickWithContent
{
public $LeftUser;
public function y()
{
$value = match(1) {
1 => 'Hii..', // <-------- syntax error, unexpected '=>' (T_DOUBLE_ARROW)
2 => 'Hello..',
default => 'Match not found !',
};
}
}
在上面的代码行中,我尝试使用match函数而不是switch语句。但是我在代码中提到的在线上得到以下错误。
语法错误,出乎意料的=祝辞(T_DOUBLE_ARROW)
PHP Match
据php.netmatch()
表达文档状态:
匹配表达式从PHP 8.0.0开始可用。
显然你正在使用php版本<8.0.0. 确保你使用的是PHP 8+,你可以在你的代码中使用phpinfo()
或在你的终端上使用php -v
来检查你的PHP版本。
match()
的替代方案是(或者我应该说match()
是替代方案)我们称之为switch()
,您可以通过使用switch()
简单地复制您在这里尝试的内容(不要忘记开关不适用于整数,因为0将简单地评估为false,反之亦然),因此您可以尝试这样做:
$target = 1;
$value = null;
switch((string) ($target)) // typecast to string
{
case "1":
$value = 'Hi..';
break;
case "2":
$value = 'Hello..'
break;
default:
$value = 'Match not found !'
}
我希望这解释了你的问题。