php學習之運算子相關概念

來源:互聯網
上載者:User

複製代碼 代碼如下:<?php
/*運算子號(PHP)操作符號
*
* 按運算子號功能分為:
* 一、算術運算子 + - * / % ++ --
* 二、字串運算子 . 串連運算子
* 三、賦值運算子 = += -= *= /= %= .=
* 四、比較子 > < >= <= == === != <> !==
* 比較子---條件運算子---關係運算子
* 比較後的結果只有一種:boolean true false
* === 比較時不僅要求內容相同,也要求類型相同
* !== 比較時內容不相同,也要求類型不相同
* 五、邏輯運算子 &&或and ||或or !或not
* 邏輯運算子只能操作bool型的值,返回的也是bool型的值
* 六、位元運算符 & | ^ ~ << >> >>>
* 七、其他運算子 ? : `` @ => -> :: & $
* `` 用來執行作業系統核心
* @ 用來屏蔽掉錯誤資訊
* 建議使用“()”改變運算式的優先順序別
*
* % 有兩個目的:整除運算;控制範圍,不要用小數,也不要用負數
* % 會吧運算子兩邊的數轉為整數後再進行整除求餘。
*/
//用 %符號判斷閏年
$year=2011;
if(($year%4==0 && %year%100!=0) || $year%400=0)
{
echo "run nian";
}
else
{
echo " not run nian";
}
// ++ --符號的使用
$a=10;
$a++; //$a=$a+1; 先用變數,再自增1
++$a; //$a=$a+1; 先自增1,在用變數
$a--; //$a=$a-1; 先用變數,再自減1
--$a; //$a=$a-1; 先自減1,再用變數
echo $a; //結果為10
//++ -- 運算的區別
$a=10;
$b=$a++;//b=10,a=11
$c=--$b;//c=9,b=9
$d=$c++ + ++$c; //d=20,c=11
$e=$d-- - --$d; //d=18,e=2
echo $d;
//字串運算子 . 的使用
$name="tom";
$age=27;
$height=1.75;
echo "我的名字是:{$name}我的年齡是:{$age}我的身高是:{$height}米<br>";
echo '我的名字是:'.$name.'我的年齡是:'.$age.'我的身高是:'.$height.'米'.'<br>';
echo "\$age=".$age; //$age=27
echo "我的名字是:{$name}我的年齡是:{$age}我的身高是:{$height}米<br>";//賦值運算子的使用
$a=10;
$a+=10; //$a=$a+10;
$a-=10; //$a=$a-10;
$a*=10; //...
$a/=10; //...
$a%=10; //$a=$a%10;
$a.="abc";//$a=$a."abc";
echo $a;
$str='<table>';
$str.='<tr>';
$str.='<td>';
$str.='</td>';
$str.='</tr>';
$str.='</table>';
echo $str;//輸出一個表格
//比較子
var_dump(15>6);//返回 bool(true)
$a=15;
if(15==$a)
{
echo "a=15";
}
else
{
echo "a!=15";
}
//邏輯運算子的使用
var_dump(true && true);//true
var_dump(true && false);//false
var_dump(true || false);//true
var_dump(!true);//false
var_dump(!false);//true
//判斷使用者名稱密碼
$username="admin";
$password="123456";
$email="290080604@qq.com";
if($username=="admin" && $password="123456")
{
echo "使用者名稱密碼正確";
}
if($username=="" || $password=="" || $email=="")
{
echo "一個都不可為空";
}
//位元運算符
$a=20; //00010100
$b=30; // 00011110
/*
* 20 00010100
* 30 00011110 &
*-----------------------------------
* 00010100
*
*/
$c=$a & $b;
echo $c;
/*補充,& | 也可以用做邏輯運算
* &&和||的 短路問題:
* &&在作運算時,如果前面的數為false,則後面是否為true,整個運算式都為false,所以就不去執行後面的運算元;
* ||在作運算時,如果前面的數為true,則後面的數是否為false,整個運算式都為true,所以就不去執行後面的運算元;
* 然而,& 或者 | 在作運算時,兩邊都會被執行
*/
$a=10;
if($a>5 || $a++<100){}
echo $a;//輸出10
$b=10;
if($b>5 | $b++<100){}
echo $b;//輸出11
/*
位的概念:一個位是由8個位元組成的(例00000000),
一個位元組由8個位組成,那麼就有32個位元。
原碼:最高位 用0表示正數,1表示負數
+7 00000111
-7 10000111
反碼:一個數如果為正,則它的反碼與原碼相同;
一個數如果為負,則符號位為1,其餘各位是對原碼取反;
+7 00000111
-7 11111000
+0 00000000
-0 11111111
補碼:一個數如果為正,則它的補碼與反碼與原碼相同
一個數如果為負,則它的補碼=反碼+1,去掉最高位的溢出位
-7 原碼 10000111  反碼11111000
+1
補碼11111001
已知一個負數的補碼,把它轉換為十進位數。
1.先對各位取反
2.將其轉換為十進位數
3.加上負號,再減去1。
例:補碼11111010
取反00000101
4+1=5
-5-1=-6
位元運算符:
& 按位與 |按位或 ^按位異或 ~按位取反
例: 按位與 01101101
&00110111
00100101
結論:只有1 1為1。
按位或 01101101
|00110111
01111111
結論:只有0 0為0。
按位異或 01101101
^00110111
01011010
結論:只有1 0或0 1時為1。(也可以理解為處於不同狀態為1(真))
按位取反 ~00110111
11001000
結論:將0變1,1變0
移位元運算符:
左移:<< 帶符號右移:>> 無符號右移:>>>
例:數 x x<<2 x>>2 x>>>2
17 00010001 01000100 00000100 00000100
-17 11101111 10111100 11111011 00111011
結論:正數左右移動都補0,負數左移補0,帶符號右移補1,不帶符號補0
*/
//其他運算子的運用
$a=10;
$b=$a>5 ? $a : 5;//三元運算子,如果成立$b=$a否則$b=5
echo $b;
//用``來執行作業系統shell命令
$str=`ipconfig /all`;
echo '<pre>';
echo $str;
echo '</pre>';
?>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.