PHP之新手自學(xué)基礎(chǔ)知識(shí)(一)——開始篇

1.認(rèn)識(shí)PHP標(biāo)簽

PHP 腳本以 <?php 開始,以 ?> 結(jié)束

   <?php 
    echo "歡迎學(xué)習(xí)PHP!";
    echo "Welcome" ." to learn PHP!";
    echo 1+2+3+4+5;
    ?>

注意:;號(hào)不能少而.英文點(diǎn)字符串拼接,echo關(guān)鍵字與字符串之間至少要有一個(gè)空格,echo是PHP中的輸出語句類似Java的println

2.創(chuàng)建(聲明)PHP變量,PHP 是一門弱類型語言

<?php 
$z="Hello world!";
$x=5;
$y=10.5;
echo z;
echo x+y;
?>

● 變量以 $ 符號(hào)開始,后面跟著變量的名稱
● 變量名必須以字母或者下劃線字符開始
● 變量名只能包含字母數(shù)字字符以及下劃線(A-z、0-9 和 _ )
● 變量名不能包含空格
● 變量名是區(qū)分大小寫的($y 和 $Y 是兩個(gè)不同的變量)

在上面的實(shí)例中,我們注意到,不必向 PHP 聲明該變量的數(shù)據(jù)類型。
PHP 會(huì)根據(jù)變量的值,自動(dòng)把變量轉(zhuǎn)換為正確的數(shù)據(jù)類型。
在強(qiáng)類型的編程語言中,我們必須在使用變量前先聲明(定義)變量的類型和名稱。

3.PHP 變量作用域

變量的作用域是腳本中變量可被引用/使用的部分。
PHP 有四種不同的變量作用域:
● local //局部
● global //全局,調(diào)用全局所需關(guān)鍵字
● static //讓局部變量不隨函數(shù)調(diào)用完而銷毀的關(guān)鍵字
● parameter //參數(shù)變量

局部和全局作用域

在所有函數(shù)外部定義的變量,擁有全局作用域。除了函數(shù)外,全局變量可以被腳本中的任何部分訪問,要在一個(gè)函數(shù)中訪問一個(gè)全局變量,需要使用 global 關(guān)鍵字。
在 PHP 函數(shù)內(nèi)部聲明的變量是局部變量,僅能在函數(shù)內(nèi)部訪問:

<?php 
$x=1; // 全局變量 
function test() 
{ 
    $y=2; // 局部變量 
    echo "<p>測(cè)試函數(shù)內(nèi)接收的變量:<p>"; 
    echo "變量x為: $x"; //輸出為空,要想輸出為1需呀用到global 關(guān)鍵字
    echo "<br>"; 
    echo "變量y為: $y"; //輸出為2
}  
test(); 
echo "<p>測(cè)試函數(shù)外接收的變量:<p>"; 
echo "變量 x 為: $x"; //輸出為1
echo "<br>"; 
echo "變量 y 為: $y"; //輸出為空,無法調(diào)用局部變量
?>
PHP global 關(guān)鍵字

global 關(guān)鍵字用于函數(shù)內(nèi)訪問全局變量。
在函數(shù)內(nèi)調(diào)用函數(shù)外定義的全局變量,我們需要在函數(shù)中的變量前加上 global 關(guān)鍵字:

<?php
$x=1;
$y=1;
 function test()
{
    global $x,$y;
    $y=$x+$y;
}
test();
echo $y; // 輸出 2
?>

PHP 將所有全局變量存儲(chǔ)在一個(gè)名為 $GLOBALS[index] 的數(shù)組中。 index 保存變量的名稱。這個(gè)數(shù)組可以在函數(shù)內(nèi)部訪問,也可以直接用來更新全局變量。
上面的實(shí)例可以寫成這樣:

<?php
$x=1;
$y=1;
function test()
{
    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 
test();
echo $y; // 輸出 2
?>
Static 作用域

當(dāng)一個(gè)函數(shù)被調(diào)用完后,函數(shù)內(nèi)的所有變量通常都會(huì)被刪除。然而,有時(shí)候希望某個(gè)局部變量不要被刪除。
那么在第一次聲明的局部變量時(shí)使用 static 關(guān)鍵字如下:

<?php
function test()
{
    static $x=0;
    echo $x;
    $x++;
    echo "<br />";
}
test();
test();
test();//豎著輸出0 1 2,若不做疊加每次都會(huì)輸出0
?>
參數(shù)(parameter)作用域

參數(shù)是通過調(diào)用代碼將值傳遞給函數(shù)的局部變量。
參數(shù)是在參數(shù)列表中聲明的,作為函數(shù)聲明的一部分:

<?php
function test($x)
{
    echo $x;
}
test(1);
?>

4.PHP echo 和 print 語句

在 PHP 中有兩個(gè)基本的輸出方式: echo 和 print。
echo 是一個(gè)語言結(jié)構(gòu),使用的時(shí)候可以不用加括號(hào),也可以加上括號(hào): echo 或 echo()。
print 同樣是一個(gè)語言結(jié)構(gòu),可以使用括號(hào),也可以不使用括號(hào): print 或 print()。
echo 和 print 區(qū)別:
● echo - 可以輸出一個(gè)或多個(gè)字符串
● print - 只允許輸出一個(gè)字符串,返回值總為 1
提示:echo屬于語句語法,print可以看做函數(shù),所以echo 輸出的速度比 print 快, echo 沒有返回值,print有返回值1。
例子:

<?php
echo "Hello world!<br>";
print "Hello world!<br>";
echo "這是一個(gè)", "字符串,", "使用了", "多個(gè)", "參數(shù)。" ,"<br>";
echo("這是一個(gè)"."字符串,"."使用了". "多個(gè)". "參數(shù)。"."<br>");
//print "這是一個(gè)", "字符串,", "使用了", "多個(gè)", "參數(shù)。";//解開后會(huì)報(bào)錯(cuò)
print("只能輸入一個(gè)字符串");
echo "<br>";
$txt1="學(xué)習(xí) PHP";
$txt2="自主";
$cars=array("蘭博基尼","瑪莎拉蒂","寶馬");

echo $txt1;
echo "<br>";
echo "$txt2 學(xué)習(xí) PHP <br>";
echo "我想要一臺(tái) {$cars[0]}跑車";

print "<br>";
print "<br>";
print  $txt1 ;
print "<br>";
print "在 $txt2 學(xué)習(xí) PHP ";
print "<br>";
print "我想要一臺(tái) {$cars[1]}跑車";
?>

5.PHP 數(shù)據(jù)類型

String(字符串), Integer(整型), Float(浮點(diǎn)型), Boolean(布爾型), Array(數(shù)組), Object(對(duì)象), NULL(空值)。

PHP 字符串(String)

可以將任何文本放在單引號(hào)和雙引號(hào)中:

<?php  $x = "Hello World!"; echo  $x; echo  "<br>"; $x = 'Hello World!'; echo  $x; ?>
PHP 整型

整數(shù)是一個(gè)沒有小數(shù)的數(shù)字。
整數(shù)規(guī)則:

  • 整數(shù)必須至少有一個(gè)數(shù)字 (0-9)
  • 整數(shù)不能包含逗號(hào)或空格
  • 整數(shù)是沒有小數(shù)點(diǎn)的
  • 整數(shù)可以是正數(shù)或負(fù)數(shù)
  • 整型可以用三種格式來指定:十進(jìn)制, 十六進(jìn)制( 以 0x 為前綴)或八進(jìn)制(前綴為 0)。

在以下實(shí)例中我們將測(cè)試不同的數(shù)字。 PHP var_dump() 函數(shù)返回變量的數(shù)據(jù)類型和值:

<?php 
$x = 12580;
var_dump($x);
echo "<br>"; 

$x = -123; // 負(fù)數(shù) 
var_dump($x);
echo "<br>"; 

$x = 0x8C; // 十六進(jìn)制數(shù)
var_dump($x);
echo "<br>";

$x = 056; // 八進(jìn)制數(shù)
var_dump($x);
?>
PHP 浮點(diǎn)型

浮點(diǎn)數(shù)是帶小數(shù)部分的數(shù)字,或是指數(shù)形式。
在以下實(shí)例中我們將測(cè)試不同的數(shù)字。 PHP var_dump() 函數(shù)返回變量的數(shù)據(jù)類型和值:

<?php 
$x = 10.24;
var_dump($x);
echo "<br>"; 

$x = 2.4e3;
var_dump($x);
echo "<br>"; 

$x = 8E-5;
var_dump($x);
?>
PHP 布爾型

布爾型可以是 TRUE 或 FALSE。

<?php 
$x=true;
var_dump($x);

$y=false;
var_dump($y);
?>
PHP 數(shù)組(后面會(huì)有更詳細(xì)的介紹)

數(shù)組可以在一個(gè)變量中存儲(chǔ)多個(gè)值。

<?php 
$cars=array("蘭博基尼","瑪莎拉蒂","寶馬");
var_dump($cars);
?>
PHP 對(duì)象

對(duì)象數(shù)據(jù)類型也可以用于存儲(chǔ)數(shù)據(jù)。
在 PHP 中,對(duì)象必須聲明。
首先,你必須使用class關(guān)鍵字聲明類對(duì)象。類是可以包含屬性和方法的結(jié)構(gòu)。
然后我們?cè)陬愔卸x數(shù)據(jù)類型,然后在實(shí)例化的類中使用數(shù)據(jù)類型:

<?php
class Car //創(chuàng)建一個(gè)汽車類
{

var $color;

function Car($color) {

$this->color = $color;

}

function what_color() {
       return $this->color;
    }

}

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {//將對(duì)象轉(zhuǎn)換成對(duì)象值輸出
    echo "\t$prop = $val\n";
   }

}

// instantiate one object(實(shí)例化一個(gè)對(duì)象)
$myCar= new Car("white");
// show herbie properties(顯示herbie對(duì)象的屬性)
echo "我車子的顏色屬性:";
print_vars($myCar);
?>
PHP NULL 值

NULL 值表示變量沒有值。NULL 是數(shù)據(jù)類型為 NULL 的值。
NULL 值指明一個(gè)變量是否為空值。 同樣可用于數(shù)據(jù)空值和NULL值的區(qū)別。
可以通過設(shè)置變量值為 NULL 來清空變量數(shù)據(jù):

<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>

6.PHP 常量

常量是一個(gè)簡(jiǎn)單值的標(biāo)識(shí)符。該值在腳本中不能改變。
一個(gè)常量由英文字母、下劃線、和數(shù)字組成,但數(shù)字不能作為首字母出現(xiàn)。 (常量名不需要加 $ 修飾符)。
注意: 常量在整個(gè)腳本中都可以使用。

設(shè)置 PHP 常量

設(shè)置常量,使用 define() 函數(shù),函數(shù)語法如下:
define ( 常量名, 常量值, 布爾類型值(可選參數(shù),如果設(shè)置為 TRUE,該常量則大小寫不敏感。默認(rèn)是大小寫敏感的。))

<?php
// 區(qū)分大小寫的常量名
define("SHOW", "歡迎學(xué)習(xí)PHP");
echo SHOW; // 輸出 "歡迎學(xué)習(xí)PHP"
echo '<br>';
//echo show; // 解開后輸出 "show"報(bào)錯(cuò)
?>
<?php
// 不區(qū)分大小寫的常量名
define("SHOW", "歡迎學(xué)習(xí)PHP",true);
echo show; // 輸出 "歡迎學(xué)習(xí)PHP"
?>
常量是全局的

常量在定義后,默認(rèn)是全局變量,可以在整個(gè)運(yùn)行的腳本的任何地方使用。
以下實(shí)例演示了在函數(shù)內(nèi)使用常量,即便常量定義在函數(shù)外也可以正常使用常量。

<?php  
define("SHOW", "歡迎學(xué)習(xí)PHP"); 
function  test()  {  echo  SHOW; }  test(); // 輸出 "歡迎學(xué)習(xí)PHP" 
 ?>

7.PHP 字符串

PHP 并置運(yùn)算符(字符串拼接符合)
在 PHP 中,只有一個(gè)字符串運(yùn)算符。
并置運(yùn)算符 (.) 用于把兩個(gè)字符串值連接起來,剛開始有提及到下面再復(fù)習(xí)下:

<?php

echo "Welcome" ." to learn PHP!";

$txt1="Hello world!";

$txt2="What a nice day!";

echo $txt1 . $txt2;

?>
PHP strlen() 函數(shù)

strlen() 函數(shù)返回字符串的長(zhǎng)度(字符數(shù))。

<?php echo strlen("Hello world!"); //輸出12 ?>

提示:strlen() 常常用在循環(huán)和其他函數(shù)中,因?yàn)槟菚r(shí)確定字符串何時(shí)結(jié)束是很重要的。(例如,在循環(huán)中,我們需要在字符串中的最后一個(gè)字符之后結(jié)束循環(huán)。)

PHP strpos() 函數(shù)

strpos() 函數(shù)用于在字符串內(nèi)查找一個(gè)字符或一段指定的文本。
如果在字符串中找到匹配,該函數(shù)會(huì)返回第一個(gè)匹配的字符位置。如果未找到匹配,則返回 FALSE。

<?php 
 //在"Hello world!"中查找文本"world"
echo strpos("Hello world!","world"); //輸出:6
?>

提示:在上面的實(shí)例中,字符串 "world" 的位置是 6。之所以是 6 而不是 7 的原因是,字符串中第一個(gè)字符的位置是 0,而不是 1。

完整的 PHP String 參考手冊(cè)(知識(shí)拓展)

如需查看所有字符串函數(shù)的完整參考手冊(cè),請(qǐng)?jiān)L問菜鳥教程的 PHP String 參考手冊(cè)
拓展:

<?php echo strlen("中文字符");  // 輸出 12,因?yàn)橐粋€(gè)中文占3個(gè)字符  ?>
<?php
//可以使用 mb_strlen 設(shè)置指定編碼輸出中文字符個(gè)數(shù)
 echo mb_strlen("中文字符",'utf-8');  // 輸出 4 
 ?>

8.PHP 數(shù)據(jù)類型的轉(zhuǎn)換

PHP是弱類型語言,因?yàn)樵谖覀兩昝饕粋€(gè)變量的時(shí)候,并不需要指明它保存的數(shù)據(jù)類型,但是PHP雖然是弱語言,但有時(shí)候仍然需要用到類型轉(zhuǎn)換。

PHP的數(shù)據(jù)類型轉(zhuǎn)換屬于強(qiáng)制轉(zhuǎn)換,允許轉(zhuǎn)換的PHP數(shù)據(jù)類型有:

  • (int)、(integer):轉(zhuǎn)換成整形
  • (float)、(double)、(real):轉(zhuǎn)換成浮點(diǎn)型
  • (string):轉(zhuǎn)換成字符串
  • (bool)、(boolean):轉(zhuǎn)換成布爾類型
  • (array):轉(zhuǎn)換成數(shù)組
  • (object):轉(zhuǎn)換成對(duì)象

PHP數(shù)據(jù)類型有三種轉(zhuǎn)換方式:

  • 在要轉(zhuǎn)換的變量之前加上用括號(hào)括起來的目標(biāo)類型(強(qiáng)制轉(zhuǎn)換)
  • 使用3個(gè)具體類型的轉(zhuǎn)換函數(shù),intval()、floatval()、strval()
  • 使用通用類型轉(zhuǎn)換函數(shù)settype(mixed var,string type),

成功時(shí)返回 TRUE, 或者在失敗 時(shí)返回 FALSE。

第一種轉(zhuǎn)換方式: (int) (bool) (float) (string) (array) (object)

<?php

$num1=3.14;

$num2=(int)$num1;

$num3=(array)$num1;

$num4=(bool)$num1;

$num5=(string)$num1;

$num6=(object)$num1;

var_dump($num1); //輸出float(3.14)

echo '<br>';

var_dump($num2); //輸出int(3)

echo '<br>';

var_dump($num3);//輸出array (size=1) 0 => float 3.14

echo '<br>';

var_dump($num4);//輸出boolean true

echo '<br>';

var_dump($num5);//輸出string '3.14' (length=4)

echo '<br>';

var_dump($num6);//輸出object(stdClass)[2] public 'scalar' => float 3.14

echo '<br>';

?>

第二種轉(zhuǎn)換方式: intval() floatval() strval()

<?php   

$str="123.9abc";   

$int=intval($str);     //轉(zhuǎn)換后數(shù)值:123   

$float=floatval($str); //轉(zhuǎn)換后數(shù)值:123.9   

$str=strval($float);   //轉(zhuǎn)換后字符串:"123.9"    

?>  

第三種轉(zhuǎn)換方式: settype();

<?php   

$num4=12.8;   

$flg=settype($num4,"int");   

var_dump($flg);  //輸出bool(true)   

var_dump($num4); //輸出int(12)   

?> 
PHP變量的數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換

PHP會(huì)自動(dòng)把變量轉(zhuǎn)換為自動(dòng)的數(shù)據(jù)類型

<?php

$string = "就是就是";

var_dump($string); //輸出string(就是就是)

$string = 9494;

var_dump($string); //輸出int(9494)

echo "<br />";

?>

8.PHP 運(yùn)算符

PHP 算術(shù)運(yùn)算符

加(+)、減(-)、乘(*)、除(/)、取余(%)

<?php  $x=10; $y=6; echo  ($x + $y); // 輸出16  
echo  '<br>'; // 換行  
echo  ($x - $y); // 輸出4  
echo  '<br>'; // 換行  
echo  ($x * $y); // 輸出60  
echo  '<br>'; // 換行  
echo  ($x / $y); // 輸出1.6666666666667  
echo  '<br>'; // 換行  echo  ($x % $y); // 輸出余數(shù)4  
echo  '<br>'; // 換行  
echo -$x;//輸出-6  
?>
PHP7+ 版本新增整除運(yùn)算符 intdiv(),使用實(shí)例:
<?php  var_dump(intdiv(10, 3));//輸出int(3) ?>
PHP 賦值運(yùn)算符

左操作數(shù)被設(shè)置為右側(cè)表達(dá)式的值
=、+=、-=、*=、/=、%=、 .=(除=號(hào)外,其他符號(hào)都是自身加、減、乘、除、取余、拼接另一個(gè)數(shù)再賦值給自身的變量)

<?php  
$x=10; 
echo  $x; // 輸出10

$y=20; 
$y += 100; 
echo  $y; // 輸出120

$z=50; 
$z -= 25; 
echo  $z; // 輸出25
  
$i=5; $i *= 6; 
echo  $i; // 輸出30  
$j=10; $j /= 5; 
echo  $j; // 輸出2
  
$k=15; 
$k %= 4; 
echo  $k; // 輸出3

$x="Hello"; 
$x .= " world!"; 
echo  $x; // 輸出Hello world! 
?>

PHP 遞增/遞減運(yùn)算符

運(yùn)算符 名稱 描述
++ x 預(yù)遞增 x 加 1,然后返回 x
x ++ 后遞增 返回 x,然后 x 加 1
-- x 預(yù)遞減 x 減 1,然后返回 x
x -- 后遞減 返回 x,然后 x 減 1
<?php  
$x=10; echo ++$x; // 輸出11  
$y=10; echo  $y++; // 輸出10  
$z=5; echo --$z; // 輸出4 
 $i=5; echo  $i--; // 輸出5  ?>
PHP 比較運(yùn)算符
運(yùn)算符 名稱 描述 實(shí)例
x == y 等于 如果 x 等于 y,則返回 true 5==8 返回 false
x === y 絕對(duì)等于 如果 x 等于 y,且它們類型相同,則返回 true 5==="5" 返回 false
x != y 不等于 如果 x 不等于 y,則返回 true 5!=8 返回 true
x <> y 不等于 如果 x 不等于 y,則返回 true 5<>8 返回 true
x !== y 絕對(duì)不等于 如果 x 不等于 y,或它們類型不相同,則返回 true 5!=="5" 返回 true
x > y 大于 如果 x 大于 y,則返回 true 5>8 返回 false
x < y 小于 如果 x 小于 y,則返回 true 5<8 返回 true
x >= y 大于等于 如果 x 大于或者等于 y,則返回 true 5>=8 返回 false
x <= y 小于等于 如果 x 小于或者等于 y,則返回 true 5<=8 返回 true
<?php  
$x=100; 
$y="100"; 
var_dump($x == $y); 
echo  "<br>"; 
var_dump($x === $y); 
echo  "<br>"; 
var_dump($x != $y); 
echo  "<br>"; 
var_dump($x !== $y); 
echo  "<br>"; 
$a=50; $b=90; 
var_dump($a > $b); 
echo  "<br>"; 
var_dump($a < $b);
 ?>
PHP 邏輯運(yùn)算符
運(yùn)算符 名稱 描述 實(shí)例
x and y 如果 x 和 y 都為 true,則返回 true x=6,y=3 (x < 10 and y > 1) 返回 true
x or y 如果 x 和 y 至少有一個(gè)為 true,則返回 true x=6,y=3 (x==6 or y==5) 返回 true
x xor y 異或 如果 x 和 y 有且僅有一個(gè)為 true,則返回 true x=6,y=3 (x==6 xor y==3) 返回 false
x && y 如果 x 和 y 都為 true,則返回 true x=6,y=3(x < 10 && y > 1) 返回 true
x ‖ y() 如果 x 和 y 至少有一個(gè)為 true,則返回 true x=6,y=3(x==5 ‖ y==5) 返回 false
! x 如果 x 不為 true,則返回 true x=6,y=3
!(x==y) 返回 true
三元運(yùn)算符

語法格式

(expr1)  ?  (expr2)  :  (expr3)

對(duì) expr1 求值為 TRUE 時(shí)的值為 expr2,在 expr1 求值為 FALSE 時(shí)的值為 expr3。

自 PHP 5.3 起,可以省略三元運(yùn)算符中間那部分。表達(dá)式 expr1 ?: expr3 在 expr1 求值為 TRUE 時(shí)返回 expr1,否則返回 expr3。

<?php  
$test = '菜鳥教程';
 // 普通寫法  
$username = isset($test) ? $test : 'nobody'; 
echo  $username, PHP_EOL; 
// PHP 5.3+ 版本寫法 
 $username = $test ?: 'nobody';
 echo  $username, PHP_EOL; 
?>

注意:PHP_EOL 是一個(gè)換行符,兼容更大平臺(tái)。

在 PHP7+ 版本多了一個(gè) NULL 合并運(yùn)算符 ??,實(shí)例如下:

<?php  
// 如果 $_GET['user'] 不存在返回 'nobody',否則返回 $_GET['user'] 的值  $username = $_GET['user'] ?? 'nobody';
 // 類似的三元運(yùn)算符  
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
 ?>
組合比較符(PHP7+)

太空船操作符,即 <=>,又稱組合比較運(yùn)算符,結(jié)合比較運(yùn)算符。
語法是這樣的:$c = $a <=> $b;
這句代碼的意思是

  • 如果$a > $b, $c 的值為1
  • 如果$a == $b, $c 的值為0
  • 如果$a < $b, $c 的值為-1
<?php 
 // 整型  
echo  1 <=> 1; // 0  
echo  1 <=> 2; // -1  
echo  2 <=> 1; // 1 
 // 浮點(diǎn)型 
 echo  1.5 <=> 1.5; // 0  
echo  1.5 <=> 2.5; // -1  
echo  2.5 <=> 1.5; // 1  
// 字符串  
echo  "a" <=> "a"; // 0  
echo  "a" <=> "b"; // -1  
echo  "b" <=> "a"; // 1  
?>

拓展:在沒有太空船運(yùn)算符的時(shí)候,我們只能這樣寫代碼:

$c = $a > $b ? 1 : ( $a==$b ? 0 : -1 );
運(yùn)算符優(yōu)先級(jí)

下表按照優(yōu)先級(jí)從高到低列出了運(yùn)算符。同一行中的運(yùn)算符具有相同優(yōu)先級(jí),此時(shí)它們的結(jié)合方向決定求值順序。

運(yùn)算符優(yōu)先級(jí)指定了兩個(gè)表達(dá)式綁定得有多“緊密”。例如,表達(dá)式 1 + 5 * 3 的結(jié)果是 16 而不是 18 是因?yàn)槌颂?hào)(“*”)的優(yōu)先級(jí)比加號(hào)(“+”)高。必要時(shí)可以用括號(hào)來強(qiáng)制改變優(yōu)先級(jí)。例如:(1 + 5) * 3 的值為 18。

如果運(yùn)算符優(yōu)先級(jí)相同,那運(yùn)算符的結(jié)合方向決定了該如何運(yùn)算。例如,"-"是左聯(lián)的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且結(jié)果是 -4. 另外一方面,"="是右聯(lián)的,所以 $a = $b = $c 等同于 $a = ($b = $c)。

沒有結(jié)合的相同優(yōu)先級(jí)的運(yùn)算符不能連在一起使用,例如 1 < 2 > 1 在PHP是不合法的。但另外一方面表達(dá)式 1 <= 1 == 1是合法的, 因?yàn)?== 的優(yōu)先級(jí)低于 <=。

結(jié)合方向 運(yùn)算符 附加信息
clone new clone 和 new
[ array()
++ — ~ (int) (float) (string) (array) (object) (bool) @ 類型和遞增/遞減
instanceof 類型
! 邏輯運(yùn)算符
* / % 算術(shù)運(yùn)算符
+ – . 算術(shù)運(yùn)算符和字符串運(yùn)算符
<< >> 位運(yùn)算符
== != === !== <> 比較運(yùn)算符
& 位運(yùn)算符和引用
^ 位運(yùn)算符
位運(yùn)算符
&& 邏輯運(yùn)算符
邏輯運(yùn)算符
? : 三元運(yùn)算符
= += -= *= /= .= %= &= 丨= ^= <<= >>= => 賦值運(yùn)算符
and 邏輯運(yùn)算符
xor 邏輯運(yùn)算符
or 邏輯運(yùn)算符
, 多處用到

運(yùn)算符優(yōu)先級(jí)中,or 和 ||,&& 和 and 都是邏輯運(yùn)算符,效果一樣,但是其優(yōu)先級(jí)卻不一樣。

<?php 
 // 優(yōu)先級(jí): && > = > and  
// 優(yōu)先級(jí): || > = > or  
$a = 3; 
$b = false; 
$c = $a  or  $b; 
var_dump($c); // 這里的 $c 為 int 值3,而不是 boolean 值 true  
$d = $a || $b; 
var_dump($d); //這里的 $d 就是 boolean 值 true 
?>

括號(hào)的使用

上面已提過使用括號(hào)來強(qiáng)制改變優(yōu)先級(jí),我們通過括號(hào)的配對(duì)來明確標(biāo)明運(yùn)算順序,而非靠運(yùn)算符優(yōu)先級(jí)和結(jié)合性來決定,通常能夠增加代碼的可讀性。

<?php  
// 括號(hào)優(yōu)先運(yùn)算  
$a = 1; $b = 2; $c = 3; $d = $a + $b * $c; 
echo  $d; //輸出為7  echo  "\n"; $e = ($a + $b) * $c; // 使用括號(hào)輸出為9  
echo  $e; 
echo  "\n"; 
?>

聲明:自學(xué)PHP大部分參考http://www.runoob.com/php/php-tutorial.html寫出,以后發(fā)表的PHP基礎(chǔ)知識(shí)文章也將會(huì)繼續(xù)參考上方網(wǎng)址而寫!但還是有點(diǎn)區(qū)別的基礎(chǔ)部分重要的我會(huì)詳細(xì)寫出,希望大家喜歡我寫的文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、php可以做什么 php是一種可以在服務(wù)器端運(yùn)行的編程語言,可以運(yùn)行在Web服務(wù)器端。 php是一門后臺(tái)編程語...
    空谷悠閱讀 3,280評(píng)論 4 97
  • 關(guān)于 Swift 重要這個(gè)文檔所包含的準(zhǔn)備信息, 是關(guān)于開發(fā)的 API 和技術(shù)的。這個(gè)信息可能會(huì)改變, 根據(jù)這個(gè)文...
    無灃閱讀 4,625評(píng)論 1 27
  • PHP(一)基礎(chǔ)語法 本來就是學(xué)習(xí)筆記,就不說廢話了 參考 PHP 手冊(cè)陳惠貞 , 陳俊榮.PHP 7&MySQL...
    cndaqiang閱讀 1,198評(píng)論 1 1
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,200評(píng)論 1 10
  • 在這個(gè)城市生活了二十多年了,好像說不出對(duì)它的感受,因?yàn)樗屛矣泻芏嗷旌系母星?。出生在這個(gè)城市,家里住在道北地區(qū),對(duì)...
    顏嫣漓閱讀 247評(píng)論 0 1

友情鏈接更多精彩內(nèi)容