Q
函數包()返回0
1
A
回答
9
你必須在這裏更具體。什麼是返回類型?這是一個二進制字符串,通常你看到的不是它實際包含的內容。
它可能以幾個空字節開始(即值= 0,\0
char)。由於該字節用於表示C語言和其他語言中的字符串結尾,因此echo
和其他函數在遇到空字節時會停止(有時手冊中提到函數是'二進制安全的',這意味着它不會將空字節視爲字符串結束)。
此外還有很多不可打印的字符。它們通常具有某種特殊的含義(例如,字符7是「鍾」命令,將其鍵入到您的shell中以便嘗試使用php -r 'echo "\7";'
)。
要找出字符串中的內容,可以將每個字符轉換爲其十六進制表示形式。你可以使用bin2hex()
這個,注意它需要兩個字符來表示輸入字符串的一個字符。
$ php -r 'var_dump(bin2hex(pack("i",6)));'
string(8) "06000000"
(您在上面看到的輸出取決於你的硬件。)在我的情況pack('i', 6);
返回整數little-endian格式,因爲我有一個英特爾處理器。
您可以看到第一個字符(06
)的十進制值爲6.然後,您通常會查找它屬於哪個字符。在很多情況下可以使用ASCII表,但請注意,如果您使用unicode或任何其他編碼,某些字符可能會有其他含義。根據我的ASCII表格,這是ACK
character。這是一個不可打印的字符,它只有控制功能。
還有待解釋的是爲什麼這會轉化爲整數0.幸運的是,這非常簡單。閱讀casting strings to numbers上的PHP手冊頁。
如果字符串以有效 數字數據開始,這將是使用的值 。否則,該值將爲0 (零)。
由於\6
炭既不是一個標誌,也不是數字(字符的0-9都是十進制\48
- \57
或\0x30
- \0x39
十六進制)PHP返回零。
相關問題
- 1. AVERAGEIFS函數返回#DIV/0
- 2. jQuery .val()函數返回0
- 3. 函數== 0的返回值?
- 4. parseInt函數( 「08」)返回0
- 5. mysql_insert_id函數返回0
- 6. 函數總是返回0
- 7. php函數返回0嗎?
- 8. Wordpress插件回調函數返回0
- 9. 函數返回0的多維數組
- 10. 包裝功能;函數返回函數
- 11. 遞歸函數 - 一直返回0嗎?
- 12. Python函數總是返回0
- 13. 我的尺寸函數返回0?
- 14. 在kotlin android tailrec函數返回0
- 15. t-sql unicode函數返回0
- 16. 使函數返回0和true
- 17. VBScript Instr函數總是返回0
- 18. javascript - 位置函數返回0
- 19. 卷積函數vDSP_imgfir返回0值
- 20. 我InStr函數總是返回0
- 21. python:random.random函數總是返回0?
- 22. 函數返回0與任何輸入
- 23. IFERROR函數在VBA沒有返回0
- 24. JavaScript函數總是返回0
- 25. 時鐘()函數總是返回0
- 26. 爲什麼MySQL SLEEP()函數返回0?
- 27. Google表自定義函數返回0
- 28. 計時函數:雙重返回0 MS
- 29. 函數返回0在Access女士值
- 30. 從函數返回0或1行
你怎麼知道它返回0,你在做什麼返回值? – 2011-01-06 13:09:42
格式我也是機器相關的,你認爲它應該返回什麼? – 2011-01-06 13:11:58