$i='11';printf("%d",printf("%d",printf("%d",$i)));//一個(gè)printf("%d",$i)輸出了11,兩個(gè)printf("%d",printf("%d",$i))時(shí)輸出了112,三個(gè)時(shí)輸出了1121,有點(diǎn)看不懂!求大哥大姐們指導(dǎo)!謝謝!
1 回答
已采納

一瞬兒光
TA貢獻(xiàn)178條經(jīng)驗(yàn) 獲得超70個(gè)贊
$i='11'; printf("%d",printf("%d",printf("%d",$i)));
//printf是c里面的輸出方法,php做了吸收。 //要弄明白這個(gè)問題,先得弄明白這幾個(gè)printf有什么區(qū)別。 //從左起,第一個(gè)printf是打印輸出,第二個(gè)的返回是作為第一個(gè)的值,第三個(gè)的返回作為第二個(gè)的值。 //printf的返回值是輸出字符串的長度。所以在打印最后結(jié)果時(shí),先打印最內(nèi)層優(yōu)先級(jí)最高的第三個(gè)printf為$i(11),然后打印次內(nèi)層第二個(gè)printf為11的長度(2),最后打印最外層第一個(gè)printf為2的程度(1),所以最后結(jié)果時(shí)1121。如果想加以驗(yàn)證,可以改寫成printf("%d\n",printf("%d\n",printf("%d\n",$i)));將三組數(shù)隔開(\n為空格,也占一個(gè)單位長度)。
- 1 回答
- 0 關(guān)注
- 1256 瀏覽
添加回答
舉報(bào)
0/150
提交
取消