多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Php入門教程之PHP 運算符用法說明

Php入門教程之PHP 運算符用法說明

來源:程序員人生   發布時間:2013-10-14 08:07:50 閱讀次數:4579次

在php中運算符是我們程序開發中最基本的一個知識點了,下面我來給各位同學介紹在php中PHP 運算符一的些常用用法介紹.

PHP 運算符

PHP 運算符主要包括:

1.算術運算符

2.賦值運算符

3.比較運算符

4.三元運算符

5.邏輯運算符

6.字符串運算符

7.錯誤控制運算符

算術運算符

運算符 說明 例子 運算結果 

+ 加 $x = 2;

$y = $x+1; $y = 3 

- 減 $x = 2;

$y = $x-1; $y = 1 

* 乘 $x = 2;

$y = $x*3; $y = 6 

/ 除,返回結果為浮點類型 $x = 6;

$y = $x/3; $y = 2 

% 求余,返回結果為浮點類型 $x = 6;

$y = $x%4; $y = 2 

++ 遞加,分為前加和后加

對布爾值和 NULL 無效 $x = 2;

++$x;(前加)

$x++;(后加) $x = 3 

– 遞減,分為前遞減和后遞減

對布爾值和 NULL 無效 $x = 2;

–$x;(前減)

$x–;(后減) $x = 1

對于前加和后加,執行后的結果都是變量加1,其區別在于執行時返回結果不一樣,參考下面兩個例子:

  1. <?php  
  2. $x = 2;  
  3. echo $x++;  //輸出2  
  4. echo $x;    //輸出3  
  5. $x = 2;  
  6. echo ++$x;  //輸出3  
  7. echo $x;    //輸出3  
  8. ?>  

遞減同理.

賦值運算符

賦值運算符“=”用于賦值運算,賦值運算符的作用在于把右邊的值賦值給左邊變量:

1 $x = 2; 

該例子將整型值 2 賦值給變量 $x.

賦值運算符其他用法

賦值運算符可以嵌套使用:

  1. <?php  
  2. $y = ($x = 2) + 5;    //結果為 $x=2,$y=7  
  3. ?>  

賦值運算符的一些變形使用方法:

1 $y += $x; 

實際上它等同于:

1 $y = $y + $x; 

同理有:

$y -= $x; 

$y *= $x; 

$y /= $x; 

$y %= $x; 

$y .= $x;   // . 為連接運算符,見字符串運算符 

比較運算符

運算符 說明 例子 運算結果 

== 等于 2 == 3 FALSE 

!= 不等于,也可寫作<> 2 == 3 TRUE 

> 大于 2 > 3 FALSE 

< 小于 2 < 3 TRUE 

>= 大于等于 2 >= 3 FALSE 

<= 小于等于 2 <= 3 TRUE

比較運算符也可用于字符串比較.

三元運算符

三元可以視作是特殊的比較運算符:

(A) ? (B) : (C) 

語法解釋:在 A求值為 TRUE 時整個表達式的值為 B,否則為 C.

例子:

1.$y = ($x == 2) ? $x : 1; 

該例子判斷變量$x的值是否等于2,如果$x等于2,那么$y的值就等于$x(也就是等于2),反之$y就等于1.

邏輯運算符

運算符 說明 例子 運算結果

&& 邏輯與,也可寫作 and $x = 2;

$y = 6;

$x && $y > 5 FALSE

|| 邏輯或,也可寫作 or $x = 2;

$y = 6;

$x && $y > 5 TRUE

! 邏輯非,取邏輯的反面 $x = 2;

$y = 6;

!($x > $y) TRUE

連接運算符

字符串運算符主要指連接運算符“.”,它將連接其左右參數字符串.

例子:

  1. $x = "beijing";  
  2. $y = $x."你好";       //$y = "beijing你好" 

如該例子所示,字符和變量共同輸出時需要使用連接運算符.

連接符與賦值運算符一起可構成連接賦值運算符:

 

  1. $x = "beijing";  
  2. $x .="你好";      //$x = "beijing你好” 

錯誤控制運算符

錯誤控制運算符:@,當將其放置在一個 PHP 表達式之前,該表達式可能產生的任何錯誤信息都被忽略掉.

  1. <?php 
  2. /* 讀取文件 */ 
  3. $my_file = @file ('file1'or 
  4.     die ("打開文件失敗,錯誤信息: '$php_errormsg'"); 
  5. ?> 

錯誤控制運算符經常用于在可能產生錯誤的地方屏蔽 PHP 的系統錯誤而提示友好的錯誤信息,運算符優先級的一個例外

今天在老王的技術手冊看到一個問題:

  1. <?phpif ($a = 100 && $b = 200) {     var_dump($a$b);} 

輸出是什么?

這個問題, 咋一看或許覺得簡單, 但其實仔細推敲并不簡單,如果說布爾與之前的部分, 是由于優先級的問題, 但是如果僅僅是優先級的問題的話, 那么結果應該是:

$a = (100 && $b) = 200而實際上的結果, 確實高優先級的&&讓步給次優先級的=, 讓 $b = 200 先結合了.

究其原因, 是因為PHP并不完全遵守優先級的定義, 這個在PHP的手冊中也有說明:

Note: Although = has a lower precedence than most other operators, PHP will still allow expressions similar to the following: if (!$a = foo()), in which case the return value of foo() is put into $a.

這樣的設計, 個人不發表看法, 反正在C語言中, 這樣類似的語句是判定為語法錯的. PHP采用這樣的設計, 很可能是歷史原因,

有好奇的同學, 會想知道到底為什么, 之前jayeeliu網友也問過:

laruence你好:

問一個php運算符優先級的問題.$t == 1 && $tt = 2按照php運算符優先級應該是(($t == 1) && $tt) = 2這個順序執行,但實際上應該是($t == 1) && ($tt = 2)我有些不太理解.

其實也簡單, 運算符優先級是在存在二義性文法的時候的一種規約規則選擇的手段, 而PHP的語法分析文件定義中, 卻讓等號和T_BOOLEAN_AND(&&)之前不存在了規約沖突:

expr_without_variable:  // 有隱規則存在, 相當于T_BOOLEAN_AND成為了"一元操作符".  |   expr T_BOOLEAN_AND  { zend_do_boolean_and_begin(&$1, &$2 TSRMLS_CC); }

exp最后, 順便說一下, PHP對應于T_BOOLEAN_AND 還定義了 T_LOGICAL_AND(and) 和 T_LOGICAL_OR(or) , 這倆個的優先級都低于等號, 于是就會有了, 很多PHP入門教材示例代碼中經典的:

$result = mysql_query(*)  or die(mysql_error());

類似的還可以用or來實現三元操作符(?:)的功能:
$person = $who or $person = "laruence";
//等同于:    
  1. $person = emptyempty($who)? "laruence" : $who

php 恒等運算符(===)與比較運算符(==)的區別

恒等計算符,和比較運算符號“==”的區別是 “==”不會檢查條件式的表達式的類型,恒等計算符會同時檢查表達式的值與類型.這主要和php是無類型語言有關,比如 NULL,FALSE,array(),”",0,”0″這幾個值如果用==他們是相等的,但是你如果判斷出某個值真正的返回值呢,就可以用 ===

$a = 0;

$b = FALSE;

$a === FALSE 不成立,但 $b === FALSE成立,如果是==, $a == FALSE 和 $b == FALSE都成立

===運算符還是很有用的,php有些內置函數成功會返回某個值,失敗會返回false,假如成功了但返回的是”"或者0之類的空值你怎么判斷成功或者失敗呢?這是就可以用 === ,它可以區分變量類型.

參考:

比較運算符 例子 名稱 結果 

$a == $b 等于 TRUE,如果 $a 等于 $b. 

$a === $b 全等 TRUE,如果 $a 等于 $b,并且它們的類型也相同.(PHP 4 引進) 

$a != $b 不等 TRUE,如果 $a 不等于 $b. 

$a <> $b 不等 TRUE,如果 $a 不等于 $b. 

$a !== $b 非全等 TRUE,如果 $a 不等于 $b,或者它們的類型不同.(PHP 4 引進) 

$a < $b 小與 TRUE,如果 $a 嚴格小于 $b. 

$a > $b 大于 TRUE,如果 $a 嚴格 $b. 

$a <= $b 小于等于 TRUE,如果 $a 小于或者等于 $b. 

$a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b.

如果比較一個整數和字符串,則字符串會被轉換為整數.如果比較兩個數字字符串,則作為整數比較.此規則也適用于 switch語句.

  1. <?php 
  2. var_dump(0 == "a"); // 0 == 0 -> true 
  3. var_dump("1" == "01"); // 1 == 1 -> true 
  4. var_dump("1" == "1e0"); // 1 == 1 -> true 
  5. switch ("a") { 
  6. case 0: 
  7.     echo "0"
  8.     break
  9. case "a"// never reached because "a" is already matched with 0 
  10.     echo "a"
  11.     break
  12. ?> 

說了一堆了我們再看看另一篇文章,運算符號(php)操作符號

按運算符號的功能分為

■算數運算符 + – * / % ++ –

■字符串運算符(連接運算符) .

■賦值運算符  =   +=  -=  *=   %=   .=

■比較(關系、條件)運算符>  <   >=   <==  ==  ===  !=  <>  !==

■邏輯運算符 && and    ||or   !  not

■位運算符 &  |   ~ ^ <<   >>  >>>

■其他的預算符?  : ” ->  ->  ::  & $

■()改變優先級別

%有兩個目的使用:整除運算;控制范圍,不要用小數,也不要用負數,%會把兩邊的數轉為整數后在整除

  1. <?php 
  2. $year=2010; 
  3. if($yeay%4==0 && $year%100!=0  ||$year%400==0){ 
  4. echo"今年是閏年"

控制范圍

$num=4600009;

echo $num%10;//9任何數和10 取余不會超過9

$a++(先用變量再自增1)  ++$a(先自增1在用變量)  $a--   --$a

  1. <?php 
  2. $a=10; 
  3. $b=$a++;//$b=10  $a=11 
  4. $c=--$b;//$c=9 $b=9 
  5. //    9           +     11 
  6. $d=$c++  +  ++$c;//$d=20 $c=11 
  7. $e=$d--  -  --$d;//2 
  8. $name="ljw"
  9. $age=25; 
  10. $heigh=1.75; 
  11. echo "我的名字是:{$name}我的年齡:{$age}我的身高{$hegit}"
  12. echo'我的名字是:'.$name.'我的年齡:'.$age.'我的身高'.$hegit.; 
  13. echo "/$age=".$age;比較運算符———條件運算法符————-關系運算符 

比較后的結果只有一種  boolean  true   false

===全等運算符
!==
—————===比較時不僅要求內容相同,也要求類型相同

&按位與(兩個都為1才為1)    |按位或(有一個為1就為1)   ^異或(不同為1相同為0)  ~取反(0與1互換) 左移  << , 右移>>   無符號>>右移

  1. —————————————————————————————– 
  2. $a=20;//16+4                00000000   00000000  00000000  00010100 
  3. —————————————————————————————– 
  4. $b=30;//16+8+4+2    00000000   00000000  00000000  00011110 
  5. —————————————————————————————– 
  6. $c$a & $b
  7. echo $c

&和|既可以做為邏輯運算符,又可以作為位運算符&&||短路問題:&& 和||會發生短路&&在做運算時,如果前邊的數為false,則后面是否為true,整個表達式都是false||在做運算是,如果前面的數是true,則后邊是否為false,整個表達式都為true;

&或|運算時,兩邊都會被執行.

其他運算符

條件?成立執行這里 :不成立則執行這里

反引號執行操作系統命令:

  1. $str=`ipconfig/all`; 
  2.  
  3. echo '<pre>'
  4. echo $str
  5. echo '</pre>'@getType();錯誤控制符,放在表達式前邊,表達式有錯誤的時候屏蔽掉,不推薦使用. 
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品成人一区二区三区 | 伊人免费视频 | 日本xxwwwxxxx| 免费视频在线观看网站 | 国产精品国产亚洲精品看不卡 | 伊人亚洲综合网 | 国产免费午夜a无码v视频 | 岛国片欧美一级毛片 | 欧美一区二区三区在线可观看 | 亚洲精选| 永久在线观看 | 爱啪网亚洲第一福利网站 | 亚洲小视频在线播放 | 日韩 国产 欧美视频一区二区三区 | 免费福利影院 | 黄h视频在线观看视频 | h在线免费| 欧美精品xxxxx | 最好看的最新中文字幕2018免费视频 | 久久精品国产亚洲a | www.久久精品视频 | 最近最新高清免费中文字幕 | 永久免费视频v片www | 亚洲不卡视频在线 | 在线亚洲欧洲国产综合444 | 日本不卡一区二区三区视频 | 欧美精品久久久久久久免费观看 | 九月婷婷天天澡天天添天天爽 | 性欧美video另类hd人妖 | 国产高清一级毛片在线不卡 | 亚洲精品九色在线网站 | 国产毛片毛片精品天天看 | 欧美日韩一区二区三区视频 | 视频在线免费 | 国产精品亚洲欧美日韩区 | 成人精品一级毛片 | 色阁阁日韩欧美在线 | 久久久久无码国产精品一区 | ccav在线永久免费看 | 国产精品视频分类 | 成人97 |