sprintf这个函数,特殊写法写起来蛮奇怪,做个笔记
%u —— 无符号数
%s —— 字符串
%4$s这个
$a = sprintf('select %4$s,count(id) as cnt from %s c left join %s s on c.id = s.id where %s and s.%4$s != 0 group by %4$s', 'aa', 'aa222222', 'aa222222433333333', 'aa22222255555');
echo $a;
//select aa22222255555,count(id) as cnt from aa c left join aa222222 s on c.id = s.id where aa222222433333333 and s.aa22222255555 != 0 group by aa22222255555
含义:大致是调整变量的实际位置
向左补零
$str = 1234;
$newStr = sprintf('%010u', $str);
向左补x
$str = 1234;
$newStr = sprintf("%'x10u", $str);
echo $newStr;
小数点补零
echo sprintf("%01.3f",1);
//%01.3f的意思是说,用一个小数点后最少三位不足三位补零,小数点前最少一位,不足一位补零的浮点数格式化后边的参数
//其运行结果是:1.000