PHP三個等號與兩個等號的區別
在PHP中兩個變數間比較相等可以使用兩個等號或者三個等號,這兩種方式有什麼區別呢?
用兩個等號時,只要比較的兩個變數的值相同,輸出true,否則輸出false。
用三個等號時,除了兩個變數的值相同外,還必須這兩個變數的型別相同,才能輸出true,否則輸出false。
例如:
$v1 = "1";
$v2 = 1;
if ($v1==$v2){
echo ("true<br/>");
} else{
echo("false<br />");
};
if ($v1===$v2){
echo ("true<br/>");
} else{
echo("false<br />");
};
程式執行結果如下:
true
false
程式解讀:
在遇到第一個if語句(兩個等號)時,PHP會把$v1從字串型別轉換成數值型,然後與$v2比較,兩值相同,返回true,因此,執行語句:echo("true<br />");。
在遇到第二個if語句(三個等號)時,雖然通過型別轉換後兩值相同,但是由於$v1的值和$v2的值的型別不同,前者是字串,後者是整數,所以返回false,因此,執行語句:echo("false<br />");。
相關推薦
PHP三個等號與兩個等號的區別
在PHP中兩個變數間比較相等可以使用兩個等號或者三個等號,這兩種方式有什麼區別呢? 用兩個等號時,只要比較的兩個變數的值相同,輸出true,否則輸出false。 用三個等號時,除了兩個變數的值相同外,還必須這兩個變數的型別相同,才能輸出true,否則輸出false。 例如: $v1 = "1"; $v2 =
三個等號和兩個等號的區別(“===”與“==”的區別)
1.===:三個等號我們稱為等同符,當等號兩邊的值為相同型別的時候,直接比較等號兩邊的值,值相同則返回true,若等號兩邊的值型別不同時直接返回false。 例:100===“100” //返回false abc===“abc”
JavaScript裡面三個等號和兩個等號的區別
== equality 等同,=== identity 恆等。 ==, 兩邊值型別不同的時候,要先進行型別轉換,再比較。 ==,不做型別轉換,型別不同的一定不等。 下面分別說明: 先說 ===,這個比較簡單。下面的規則用來判斷兩個值是否===相等: 1、如果型別不同,就
php中array_walk() 和 array_map()兩個函數區別
.html als 就是 gpo map false AR HP www. 兩個函數的共性和區別: 1.傳入這兩個函數的 $value,就是數組中的單一個元素。 2.array_walk() 僅返回true或者false,array_map() 返回處理後的數組; 3.要得
一道簡單的演算法題:不借助第三變數來交換兩個變數的值
今天做筆試碰到一道簡單的演算法題:不借助第三變數來交換兩個變數的值,記錄一下。 交換兩個變數的值的普遍做法都是藉助第三變數,這樣具有較高的可讀性。 a = 3 b = 5 t = a a = b b = t 但是,如果記憶體有限,只允許用2個變數呢? 強大的CS當然有辦法解決
php一個表單有兩個提交按鈕,分別對應不同的處理頁面,
通過隱藏表單hidden的屬性值應該可以解決 <form action="test.php" name='theForm'> <input type'hidden' name='act'> <input type="submit" name="ret
java 新生代Eden與兩個Survivor區的解釋
原文連結:聊聊JVM的年輕代 最近在學習《深入理解java虛擬機器》,在垃圾收集器這一部分對於Eden和Surviror不太清晰,發現一篇講的很棒的部落格,分享給大家,一起學習一下! 1.為什麼會有年輕代 我們先來屢屢,為什麼需要把堆分代?不分代不能完成
Oracle 以當前時間為準,取前三個小時後兩個小時的分鐘列舉
/*以當前時間為準,取前三個小時後兩個小時的分鐘列舉*/ with x as( select 開始時間+level * 1/24/60 as 分鐘 from (select sysdate+2/24 as 結束時間,sysdate-3/24 as 開始時間 fro
小貓咪的面向物件 一個類三個物件 用兩個列表寫
class Cat: def __init__(self): self.name =None self.age = None self.color = None def run(self): pr
給定兩個變數將兩個變數的值內容進行交換的三種方法
建立一個void swap(int a,int b){}函式,賦值作為被調函式 void swap(int *p1,int *p2) { int tmp = *p1; int *p1 = *p2; int *p2 = tmp; } int main() { in
三個類,兩個類分別計算矩形面積和圓面積,主類輸出矩形面積和圓面積
【原始碼】 class Rect{ double width; double height; double getArea(){ &
program的發展史與兩個數學方法
program的發展史(1950-如今) 三個階段: 第一個階段是1950年代到1960年代,是程式設計階段,基本是個體手工勞動的生產方式。這個時期,一個程式是為一個特定的目的而編制的,軟體的通用性是很有限的,軟體往往帶有強烈的個人色彩。早期的軟體開發沒有什麼系統的方法可以遵循,軟體設計是在某個人的頭腦中
不借助第三個變數交換兩個整數
假設兩個數x和y,則有: 方法1,算術運算(加減): x=x+y; //x暫存兩數之和 y=x-y; //y為兩數之和減去y,即原來的x x=x-y; //x為兩數之和減去現在的y(原來的x),變成原來的y 方法2,邏輯運算(異或):
C#複習_不使用第三個變數交換兩個int型別變數的值
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _05不使用temp變數int型別資料交換 { class Progra
劍指offer——兩個棧實現佇列與兩個佇列實現棧
題目描述:兩個棧實現佇列 解題思路:棧是“先進後出”,佇列是“先進先出”。操作“入佇列”:利用兩個棧s1和s2,元素進的時候,放入s1即可。操作“出佇列”:先檢查s2是否為空,如果不為空,直接pop出s2的元素,如果為空,則把s1的元素都pop出來,然後依次放入s2中,再對s2進行pop即可
不用第三個變數交換兩個變數的值
<?php // 不用php庫函式,將字串反轉 $i = 0; $str = 'hello world my name is SHUIPING_YANG '; while ($str[$i] !=
鄭州輕工業OJ:2502: 建國與兩個陣列
題目描述 建勳這幾天在學習關於陣列的知識,他遇到了一個難題,用他學過的陣列知識好像解決不了。建勳只好去求助聰明的建國,題目是這樣的:有兩個陣列,第一個包含了1到n共n個數字,第二個包含了1到m共m個數字。建勳想要從兩個陣列中各挑選出一個整數x,y,使得x,y
opencv與兩個攝像頭實現雙目標定與測距
http://download.csdn.net/detail/hysteric314/9514831 實現效果:http://v.youku.com/v_show/id_XMTU2Mzk0NjU3Ng==.html 這篇部落格是這個的改進版http://blog.c
ZZULIOJ 2502: 建國與兩個陣列
題目描述 建勳這幾天在學習關於陣列的知識,他遇到了一個難題,用他學過的陣列知識好像解決不了。建勳只好去求助聰明的建國,題目是這樣的:有兩個陣列,第一個包含了1到n共n個數字,第二個包含了1到m共m個數字。建勳想要從兩個陣列中各挑選出一個整數x,y,使得x,y
ZZULIOJ 2502: 建國與兩個陣列 (思維題 詳細題解)
這個題目是一道非常有意思的題目, 有很多種解法, 在這兒我只討論一種最容易直觀理解的解法 考慮一下, 因為求兩數和為k的倍數, 我們就可以把每個數都先%k, 分為了k類, 用a,b儲存起來, a[i]即為n中%k後為i的數量, b[i]同理 這樣我們不難發現, 湊k的倍數就簡化成了湊k