我刚刚将一些旧的PHP文件上传到新服务器,并在速记三元操作上得到解析错误(意外':').例如:
$y = $x ?: "Some default";
Run Code Online (Sandbox Code Playgroud)
php版本是5.2.16代码中充斥着这些简写?:,所以在更改它们之前我想我是否会知道是否有人知道这一点,因为我现在还没有使用PHP一段时间.
这是我用来构建程序的bash脚本:
dateString=$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h
echo "#define VERSION_REVISION \"$revision\"" >> version.h
Run Code Online (Sandbox Code Playgroud)
我从使用build.sh更改为makefile:
version.h:
dateString=$$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h.tmp
echo "#define VERSION_REVISION \"$revision\"" >> version.h.tmp
mv version.h.tmp version.h
Run Code Online (Sandbox Code Playgroud)
但是version.h文件最终结束:
#define VERSION_DATE "\ateString"
#define VERSION_REVISION "\evision"
Run Code Online (Sandbox Code Playgroud)
我似乎无法正确获取shell变量.我认为它是因为它们最终成为Makefile vars.如果有人知道怎么做,我不介意知道如何做.非常感谢.