我明白爲什麼「回聲!0」返回1.我不明白的是爲什麼echo !!! 0也返回1.請讓我知道我錯過了什麼。當我回聲! 0它給了我一個奇怪的結果
回答
你缺少!
是不運營商,以及0
是falsy值:
!0;//oposite of "false" ==> true ==> 1
!!!0;//oposite of the oposite of the oposite ==> oposite
當一個布爾值相呼應,它轉化爲它的實際價值(如果有的話)。對於某些事情是真實的,它必須是。所以true
是1
。同樣,對於某些虛假的東西,它不可能如此,所以echo false;
顯示爲空字符串,正如deceze指出的那樣。
要說得很清楚,你應該將!!!0
想象成對「逆向心理學」的一些幼稚嘗試。
Don't give nothing to me. ~=> Give something to me (Don't + nothing is double negation)
I'm not Not giving nothing to you. ~=> I'm not giving anything (not + not + nothing is tripple negation)
底線,假設n
是!
標誌的值的/ var /表達,我們稱之爲e
前一個號碼:
if n%2 === 0
(n(!)) e === (boolean)e
if n%2 === 1
(n(!)) e === !e
IF否定運營商的操作數之前的數是甚至,表達式將被評估爲其值,並轉換爲布爾值。如果否定運算符的數目是奇數,則表達式將評估爲其反轉布爾值。
只需將所有!
的替換爲的對照即可。
!0
等於true;
,當你真正的呼應你1
零本身被認爲是假的:
if (0) // false
echo "you won't see this."
if (!0) // if not 0 means true
echo "you see this."
由於!
是邏輯NOT運算符和0被解釋爲false
,你會得到這樣的:
!0 -> true
!!0 -> !(!0) -> !(true) -> false
!!!0 -> !(!(!0)) -> !(!(true)) -> !(false) -> true
當您echo true;
時,PHP輸出一個1
。
你也沒有正確的解釋。如果你把它變成十幾個嬗變,!0反正不會是1。 –
你是對的,[它會是真的](http://php.net/manual/en/language.operators.logical.php)。輸出爲1.但是,如何回答或給出正確的解釋而不是低估每個人? – DarkDust
因爲你提供了錯誤的答案,你得到了一個downvote,這就是爲什麼downvoting在這裏。這不是質量信息。我贊成你,因爲你修復了你的答案。 –
它是echo
實際上你失敗了,在做一些研究時不要使用這個操作符。
但要使用var_dump()
,而不是一個習慣:
var_dump(!0);
,你將永遠知道真正的價值:
bool(true)
- 1. Javascript(jQuery)給了我奇怪的結果
- 2. 爲什麼它給了我XmlHttpRequest對象的奇怪結果?
- 3. 加入sql給我奇怪的結果
- 4. 給std :: cin while循環給出了一個奇怪的結果
- 5. Codility PermMissingElem給出了奇怪的結果
- 6. UITableView給出了奇怪的結果
- 7. iptables-save命令給出了奇怪的結果在一個空的iptables我做
- 8. Twitter Bootstrap plus同位素給了我奇怪的結果
- 9. MVC3 ActionLink給我一個奇怪的結果
- 10. attr()怎麼給我一個奇怪的結果?
- 11. SQL CLR UDT的ToString()給出了一個奇怪的結果
- 12. 乘返回一個奇怪的結果
- 13. mouseenter和mouseleave在我的插件中給我一個奇怪的結果
- 14. jquery動畫給我在我的網站上的奇怪結果
- 15. 的Eclipse編譯時給了我一個奇怪的錯誤
- 16. 指定Storyboard.Target的東西給了我一個奇怪的錯誤
- 17. 返回奇怪的結果
- 18. 真的很奇怪,程序的調試工作正常,但是當我運行它時,我得到了一個奇怪的結果
- 19. 得到了一個奇怪的OpenID。我該如何改變它?
- 20. ko.validation與validatedObservable讓我奇怪的結果
- 21. 爲什麼我的程序給出奇怪的結果?
- 22. 爲什麼我的Time :: Piece代碼給出奇怪的結果?
- 23. 奇怪的結果,當我不輸出一個特定的變量
- 24. StackOfIntegers給出奇怪的結果
- 25. Python:heapq.heappop()給出奇怪的結果
- 26. Javascript chained inequality給出奇怪的結果
- 27. 一個URL的奇怪結果
- 28. Android的C#單聲道 - double.parse給出奇怪的結果
- 29. R中的正態性測試給出了奇怪的結果?
- 30. 奇怪的結果,當試圖選擇不是0
嘗試回聲!!!!! 0位的重複樂趣。 – ciruvan
出於好奇:你爲什麼認爲'!0'產生'1'?因爲如果你正確地理解了這個,'!!! 0'也是'1'的原因應該是非常明顯的。 – deceze
以及我說回聲不錯,所以它返回一個意思是真的所以爲什麼!也返回一個 – user2674150