PHP 内联条件在 PHP 5.3.29 中不起作用,但在 5.6.7 中起作用
PHP inline condition not working in PHP 5.3.29 but working in 5.6.7
这让我很困惑,因为我以前从未经历过这样的事情。我的本地主机环境是 5.6.7 PHP 而我的生产服务器(共享主机)目前是 运行 5.3.29 似乎这个内联脚本在生产环境中引起了问题但运行没有任何错误,我本地的通知甚至警告。
<?php
$account_record['User']['date_of_birth'] = '';
$request_data['User']['dob_data'] = '';
$dob_date = (!empty($account_record['User']['date_of_birth'])?explode('-',$account_record['User']['date_of_birth'])[2]:(!empty($request_data['User']['dob_date'])?$request_data['User']['dob_date']:''));
这是我在 PHP 5.3.29 上遇到的错误
解析错误:语法错误,[...][...] 行 5[ 中的意外“[” =27=]
我似乎无法弄清楚哪里出了问题。
我在下面放置了一个沙箱 link,我能够在那里重现该问题。如果我 select 5.3.29 它不起作用,但是当我 select 说它开始工作 PHP 5.4 时,它就起作用了。
http://sandbox.onlinephpfunctions.com/code/96decf9191975c9948d346d183f6d443f0beeeaf
如有任何帮助,我们将不胜感激。谢谢
存在问题 explode('-',$account_record['User']['date_of_birth'])[2]
,在过去的 php 时代,您无法从数组中获取值,因为它们是从函数返回的,您必须将其保存到首先是变量。
这让我很困惑,因为我以前从未经历过这样的事情。我的本地主机环境是 5.6.7 PHP 而我的生产服务器(共享主机)目前是 运行 5.3.29 似乎这个内联脚本在生产环境中引起了问题但运行没有任何错误,我本地的通知甚至警告。
<?php
$account_record['User']['date_of_birth'] = '';
$request_data['User']['dob_data'] = '';
$dob_date = (!empty($account_record['User']['date_of_birth'])?explode('-',$account_record['User']['date_of_birth'])[2]:(!empty($request_data['User']['dob_date'])?$request_data['User']['dob_date']:''));
这是我在 PHP 5.3.29 上遇到的错误
解析错误:语法错误,[...][...] 行 5[ 中的意外“[” =27=]
我似乎无法弄清楚哪里出了问题。 我在下面放置了一个沙箱 link,我能够在那里重现该问题。如果我 select 5.3.29 它不起作用,但是当我 select 说它开始工作 PHP 5.4 时,它就起作用了。 http://sandbox.onlinephpfunctions.com/code/96decf9191975c9948d346d183f6d443f0beeeaf
如有任何帮助,我们将不胜感激。谢谢
存在问题 explode('-',$account_record['User']['date_of_birth'])[2]
,在过去的 php 时代,您无法从数组中获取值,因为它们是从函数返回的,您必须将其保存到首先是变量。