国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

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

2024-05-04 21:57:30
字體:
來源:轉載
供稿:網友

在php中運算符是我們程序開發(fā)中最基本的一個知識點了,下面我來給各位同學介紹在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

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

  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 的系統錯誤而提示友好的錯誤信息,運算符優(yōu)先級的一個例外

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

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

輸出是什么?

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

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

究其原因, 是因為PHP并不完全遵守優(yōu)先級的定義, 這個在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.

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

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

laruence你好:

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

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

expr_without_variable:  // 有隱規(guī)則存在, 相當于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) , 這倆個的優(yōu)先級都低于等號, 于是就會有了, 很多PHP入門教材示例代碼中經典的:

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

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

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

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

$a = 0;

$b = FALSE;

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

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

參考:

比較運算符 例子 名稱 結果 

$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.

如果比較一個整數和字符串,則字符串會被轉換為整數.如果比較兩個數字字符串,則作為整數比較.此規(guī)則也適用于 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

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

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

■()改變優(yōu)先級別

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

  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

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

&或|運算時,兩邊都會被執(zhí)行.

其他運算符

條件?成立執(zhí)行這里 :不成立則執(zhí)行這里

反引號執(zhí)行操作系統命令:

  1. $str=`ipconfig/all`; 
  2.  
  3. echo '<pre>'
  4. echo $str
  5. echo '</pre>'@getType();錯誤控制符,放在表達式前邊,表達式有錯誤的時候屏蔽掉,不推薦使用. 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 华阴市| 新干县| 通辽市| 高清| 宣城市| 诏安县| 射洪县| 上犹县| 铁岭市| 荃湾区| 图们市| 简阳市| 太原市| 仙桃市| 云和县| 青阳县| 张北县| 新绛县| 镇江市| 泽州县| 明星| 马边| 赤壁市| 都江堰市| 巍山| 锦屏县| 甘肃省| 全南县| 富平县| 阳原县| 牡丹江市| 曲水县| 海兴县| 和顺县| 大邑县| 贵定县| 高安市| 黄陵县| 乌拉特中旗| 汝南县| 巫山县|