PHP中${!${''}}特殊语法的含义与功能解析求助
拆解PHP代码
${!${''} = date('Y-m-d')}的含义 咱们一步步拆这个看起来绕得慌的表达式:
1. 先看赋值部分:${''} = date('Y-m-d')
PHP里${变量名}是动态变量的写法,${''}就是把空字符串当作变量名(直接写$""不合法,所以必须用${''}的格式)。这一步会把date('Y-m-d')生成的当前日期(比如2024-05-20)赋值给这个空名变量。
2. 再看!和最终的变量引用
整个表达式的执行顺序是:
- 先完成赋值
${''} = date('Y-m-d'),这个赋值操作的返回值就是当前日期字符串; - 对这个返回值用
!取逻辑非:非空字符串在PHP里等价于布尔值true,!true得到false; - 最后
${false}:PHP会把布尔值false转换成字符串"",所以${false}就是刚才那个空名变量,最终返回它的值——也就是当前日期。
本质就是个冗余写法
它的最终效果和直接写date('Y-m-d')完全一样,纯粹是用晦涩语法炫技,既没必要,还大幅降低代码可读性。在你给出的input代码里,就是把当前日期设为输入框的默认值,换成value="'.date('Y-m-d').'"反而更直白易懂。
内容的提问来源于stack exchange,提问作者Cavalier
相关产品推荐
相关产品推荐

