PHP入門篇

1、PHP-什麼是變量php

 變量是用於存儲值的,咱們命令服務器去幹活的時候,每每須要產生一些數據,須要臨時性存放起來,方便取用。咱們也能夠理解爲,變量就像一個購物袋,咱們能夠用來裝蘋果、榴蓮(固然也能夠用來裝玫瑰),須要注意的是,通常狀況下一個變量只能裝一個(不要太貪心)值,除非是複合變量(後面變量類型時會介紹),當咱們放進去一個蘋果後,再放進榴蓮的時候,蘋果就被替換掉,再放入香蕉,那麼榴蓮就被替換了。

(下面是一個定義變量的例子,你們先照着作,目的是先對變量有一個大致印象,關於定義變量的語法,會在下一小節詳細介紹)mysql

<?php
    $var = "你們來學PHP";
    echo $var;
   echo "<br />";
   $var = "學PHP上慕課網";
   echo $var;
?>

 2、PHP-如何定義變量web

 定義變量就是向服務器的內存(服務器的內存,咱們能夠當作一個大倉庫)申請空間(咱們能夠理解爲一個子倉庫),用來存儲數據。這時候咱們就須要用到變量名(也就是子倉庫的名字)和變量值(須要存放的東西,蘋果、榴蓮、香蕉均可以)。紀曉嵐就給本身的書房取了個名字「閱微草堂」,這個「閱微草堂」就是變量名,書房中放的東西就是變量值。語法以下:
<?php
$var_name = 「蘋果」;
$n = 10;
?>

解釋一下,在「=」左邊是變量名,右邊是變量值,完成定義變量後,須要一個告訴服務器這行指令已經結束。其中變量名必須經過$符號標識;「=」可不是咱們日常所說的等號哦,在PHP中,=是賦值運算符(後面部分的小節會介紹);在這裏,var_name是變量名,「蘋果」是變量值,它是一個字符串;n是變量名,10是變量值,它是一個整型(變量的數據類型的一種,後面部分的小節會介紹)。sql

<?php 
$var_name = "蘋果";
$n = 10;
var_dump($var_name);
var_dump($n);
?>

 講解:」var_dump」函數能夠將咱們的變量的數據類型(後面小節會作介紹)顯示出來。數據庫

注意:1.要把代碼寫在「<?php」和「?>」之間,用空格隔開;數組

   2.每行結束,不要漏了「;」哦。服務器

 3、PHP-變量名的命名規則app

 變量名除了須要「$」進行標識外,還有一些規則須要遵照。就像拿到駕駛證之後,還得遵照交通規則。變量名的命名規則主要有三條:

一、變量名必須以字母或下劃線 「_」開頭,如」$_name」,」$name」 ,」$name2」等,可是」$9name」是不對的。編輯器

二、變量名只能由字母、數字、以及「_」組成,還能包含漢字。如」$_qq」,」$qq308」 ,」$my_apple」,「好比"$name我等」,可是」$name*」是不對的。函數

三、變量名不容許包含空格。當變量名由多個單詞組成,建議使用「_」進行分隔(好比 $my_apple),俗稱下劃線法,或者以大寫字母開頭好比 $myApple,俗稱駱駝式命名法(也稱駝峯命名法)。

特別須要注意的是,在PHP中變量名是區分大小寫的,如「$my_book」與「$my_Book」表明兩個不一樣的變量。

 任務

變量名區分大小寫,不信?咱驗證一下!

在右邊編輯器中的第8行輸入

$my_book = "此次奇蹟要發生啦";

講解:咱們發現,大寫的變量名「$my_BOOK」沒有把小寫的變量名「$my_book」的值覆蓋,可見變量名但是對大小寫敏感的。

<?php
    $my_book = "此次奇蹟要發生啦";
    $my_BOOK = "個人大寫的BOOK";
	echo $my_book;
	echo "<br />";
	echo $my_BOOK;
	echo "<br />";
	
	echo $my_book;
	echo "<br />";
?>

4、PHP-什麼是變量的數據類型

在變量中,因爲變量佔用的空間單元不同(佔的地盤大小不同),也分紅幾種數據類型,就像超市商品的包裝袋,有幾種不一樣類型,不一樣的商品使用不一樣的包裝袋。咱們能夠經過使用「memory_get_usage」獲取當前PHP消耗的內存。

任務

咱對比一下內存消耗吧!

在右邊的編輯器中,咱分別定義四種不一樣的數據類型,分別是字符串類型,整型,浮點型和數組(後續會詳細介紹這幾種類型)。

一、在第4行中定義字符串類型「$var_string = "123";」

二、第7行定義整型「$n=123;」

三、第10行定義浮點型「$f=123.00;」

四、第13行定義數組「$var_array = array("123");」

咱們能夠看到輸出結果:

初始化消耗了624056,字符串消耗328,整型和浮點型都是288,數組消耗632。

注意:根據操做系統、PHP版本以及PHP的運行方式可能輸出結果會不一樣。

<?php 
echo $m1 = memory_get_usage(); 
echo "<br />";
$var_string = "123";
echo $m2 = memory_get_usage()-$m1; 
echo "<br />";
$n=123;
echo $m3 = memory_get_usage()-$m1-$m2; 
echo "<br />";
$f=123.00;
echo $m4 = memory_get_usage()-$m1-$m2-$m3; 
echo "<br />";
$var_array = array("123");
echo $m5 = memory_get_usage()-$m1-$m2-$m3-$m4; 
?>

 5、PHP變量的數據類型

在PHP中,支持8種原始類型,其中包括四種標量類型、兩種複合類型和兩種特殊類型。PHP是一門鬆散類型的語言,沒必要向PHP聲明變量的數據類型,PHP會自動把變量轉換爲自動的數據類型,必定程度下降了學習PHP的門檻。若是接觸過C語言或者JAVA語言,就會發如今聲明變量的時候須要聲明變量的數據類型。

任務

咱來變個魔術吧,字符串變數字!

在右邊編輯器中,

一、第2行定義一個字符串「就是就是」,代碼爲「$string = "就是就是";」,

二、在第5行咱把它變成整型「9494」,代碼爲「$string = 9494;」,而後經過「var_dump」函數,輸出數據類型。

從輸出結果:

咱們能夠發現, 這個變量自動就從原來的字符串轉換成了整型咯。

<?php 
 $string = "就是就是";
 var_dump($string);
 echo "<br />";
 $string = 9494;
 var_dump($string);
  echo "<br />";
?>

 6、PHP標量類型—布爾類型

布爾類型(boolean):只有兩個值,一個是TRUE,另外一個FALSE,能夠理解爲是或否。它不區分大小寫,也就是說」TRUE」和「true」效果是同樣的。主要用在條件結構(條件結構在後面部分會介紹)中,例如判斷是否知足條件的時候,是用「true」表示知足,用「false」表示不知足。須要注意的是,當咱們用」echo」指令輸出布爾類型時,若是是「true」則輸出的是「1」,「false」則什麼也不輸出。咱們可使用「var_dump」函數,獲取它真正的數據類型。

<?php
 $flag=TRUE;
?>

任務

咱們來試試布爾類型吧!

一、在第 2 行定義一個字符串,代碼爲:

 $man = "男";

二、在第 3 行判斷該變量是否等於「男」,並將比較的結果賦值給變量「$flag」,代碼爲:

$flag = $man == "男";

講解:

一、其中使用「==」等於比較運算符(後續運算符部分會詳細介紹)。

二、咱們能夠發現,雖然使用」echo」指令輸出結果爲1,而「var_dump」給咱們代表了「$flag」爲布爾類型的身份。

<?php 
    $man = "男";
	$flag = $man == "男";
	echo $flag ;
	echo "<br />" ;
	var_dump($flag);
?>

 7、PHP標量類型—整型

整型(integer):相似於常見的整數。它能夠用十進制、八進制、十六進制指定。十進制就是平常使用的數字;八進制,數字前必須加上「0」(這個0是阿拉伯數字0,可不是英文字母「歐」哦);十六進制,數字前必須加「0x」 (這個0也是阿拉伯數字0,不是「歐」哦)。如:

<?php
$data_int = 1234;   // 十進制數 
$data_int = -567;    // 一個負數
$data_int = 0123;    // 八進制數(等於十進制的 83)
$data_int = 0x1a;    // 十六進制數(等於十進制的 26)
?>

任務

咱們來試一試,咱也來定義幾個整型!

在右邊的編輯器中輸入四條指令,如圖所示:

一、在第2行中輸入第一條指令「$data_int1 = 123;」

二、在第5行中輸入第二條指令「$data_int2 = -123;」

三、在第8行中輸入第三條指令「$data_int3 = 0123;」

四、第11行中輸入第四條指令「$data_int4 = 0x123;」

從結果顯示:

八進制的「0123;」等於10進制中的83,十六進制的「0x123;」等於10進制的291。

<?php
$data_int1 = 123;
echo $data_int1;
echo "<br />";
$data_int2 = -123;
echo $data_int2;
echo "<br />";
$data_int3 = 0123;
echo $data_int3;
echo "<br />";
$data_int4 = 0x123;
echo $data_int4;
echo "<br />";
?>

 8、PHP標量類型—浮點型

浮點型(浮點數、雙精度數或實數),也就是一般說的小數,能夠用小數點或者科學計數法表示。科學計數法可使用小寫的e,也可使用大寫的E。例如:

<?php
$num_float = 1.234;    //小數點  
$num_float = 1.2e3;    //科學計數法,小寫e  
$num_float = 7.0E-10;     //科學計數法,大寫E  
?>

任務

咱也來定義幾個浮點型!

在右邊編輯器中輸入三條指令,如圖:

一、第2行輸入第一條指令「$num_float1 = 1.234;」,

二、第5行輸入第二條指令「$num_float2 = 1.2e3;」,

三、第8行輸入第三條指令「$num_float3 = 7.0E-3;」。

從結果:

咱們能夠發現,能夠根據須要使用小數點或科學計數法來定義浮點型變量。

<?php
$num_float1 = 1.234;
echo $num_float1;
echo "<br />";
$num_float2 = 1.2e3;
echo $num_float2;
echo "<br />";
$num_float3 = 7.0E-3;
echo $num_float3;
echo "<br />";
?>

 9、PHP標量類型—字符串(1)

字符串是由一系列字符組成,在PHP中,字符和字節同樣,也就是說,一共有256種不一樣字符的可能性。

字符串型能夠用三種方法定義:單引號形式、雙引號形式和Heredoc結構形式。

任務

咱們先來試試單引號形式和雙引號形式!

在右邊編輯器中輸入兩條指令,如圖:

一、第2行輸入第一條指令「$str_string1 = '我是字符串';」,

二、第3行輸入第二條指令「$str_string2 = "我也是字符串哦";」

<?php 
$str_string1 = '我是字符串';//單引號
$str_string2 = "我也是字符串哦";//雙引號
echo $str_string1;
echo "<br />";
echo $str_string2;
?>

10、PHP標量類型—字符串(2)

當你的字符串中包含引號的時候,咱們怎麼辦?不要慌哈,我們想一想辦法。以下圖(單擊可放大):

第一種方案:在單引號中嵌入雙引號,如上圖第2行所示;

第二種方案:在雙引號中嵌入單引號,如上圖第3行所示;

第三種方案:使用轉義符「\」(後面部分還有介紹),分別如上圖第4行和第5行所示;

任務

咱們來試一試吧:

一、在第2行輸入:

$str_string1 = '甲問:"你在哪裏學的PHP?"';

二、在第3行輸入:

$str_string2 = "乙絕不猶豫地回答:'固然是慕課網咯!'";

三、在第4行輸入:

$str_string3 = '甲問:\'能告訴我網址嗎?\'';

四、在第5行輸入:

$str_string4 = "乙答道:\"www.imooc.com\"";

運行結果:

?php 
$str_string1 = '甲問:"你在哪裏學的PHP?"';
$str_string2 = "乙絕不猶豫地回答:'固然是慕課網咯!'";
$str_string3 = '甲問:\'能告訴我網址嗎?\'';
$str_string4 = "乙答道:\"www.imooc.com\"";
echo $str_string1;
echo "<br />";
echo $str_string2;
echo "<br />";
echo $str_string3;
echo "<br />";
echo $str_string4;
echo "<br />";
?>

 11、PHP標量類型—字符串(3)

當引號遇到美圓咋辦?這裏的美圓可不是真正的美圓,而是用美圓符號標識的變量。如圖:

當雙引號中包含變量時,變量會與雙引號中的內容鏈接在一塊兒;

當單引號中包含變量時,變量會被當作字符串輸出。

任務

嘿嘿,我們來動手看看結果吧:

一、在第3行輸入「$string1 = "慕課網,$love";」;
二、在第4行輸入「$string2 = '慕課網,$love';」;

運行結果以下:

<?php 
$love = "I love you!"; 
$string1 = "幕課網,$love";
$string2 = '幕課網,$love';
echo $string1;
echo "<br />";
echo $string2;
?>

 12、PHP標量類型—字符串(4)

當個人字符串很長怎麼辦?

咱們可使用Heredoc結構形式的方法來解決該問題,首先使用定界符表示字符串(<<<),接着在「<<<「以後提供一個標識符GOD,而後是字符串,最後以提供的這個標識符結束字符串。如圖:

在賦值符號後,輸入定界符「<<<」,接着是標識符,你能夠用你的女神做爲標識符「GOD」,如第2行,也可使用你喜歡的狗狗,「DOG」做爲標識符,可是,結尾處的標識符也必須是同樣的。此外,在結尾的一行,如第7行,必定要另起一行,而且此行除了「GOD」,並以「;」號結束以外,不能有任何其餘字符,先後都不能有,包括空格,不然會出現錯誤的哦。切記切記哦。

任務

接下來,我們一塊兒來試試吧:

一、在第2行輸入「$string1 = <<<GOD」;

二、在第7行輸入「GOD;」;

運行結果:

<?php 
$string1 = <<<GOD
我有一隻小毛驢,我歷來也不騎。
有一天我心血來潮,騎着去趕集。
我手裏拿着小皮鞭,我內心正得意。
不知怎麼嘩啦啦啦啦,我摔了一身泥.
GOD;

echo $string1;
?>

運行結果以下:

我有一隻小毛驢,我歷來也不騎。
有一天我心血來潮,騎着去趕集。
我手裏拿着小皮鞭,我內心正得意。
不知怎麼嘩啦啦啦啦,我摔了一身泥.

 十3、PHP第一種特殊類型—資源

資源(resource):資源是由專門的函數來創建和使用的,例如打開文件、數據鏈接、圖形畫布。咱們能夠對資源進行操做(建立、使用和釋放)。任何資源,在不須要的時候應該被及時釋放。若是咱們忘記了釋放資源,系統自動啓用垃圾回收機制,在頁面執行完畢後回收資源,以免內存被消耗殆盡。

舉例以下:

<?php
$file=fopen("f.txt","r");   //打開文件
$con=mysql_connect("localhost","root","root");  //鏈接數據庫
$img=imagecreate(100,100);//圖形畫布
?>

任務

噓!咱偷窺一個小文件!

假設在服務器上,你發現了一個文件,是否是很好奇,想看看裏面寫了啥。嘿嘿,PHP能夠作到哦(可是千萬記住,若是是隱私文件,可不能偷窺哦,就像偷窺陳冠*的照片同樣,要坐牢滴!)。假設服務器上有個文件爲「f.txt」,這時候,咱們就須要用到資源這種特殊的數據類型。

具體步驟:

在右邊編輯器第3行輸入下面語句:

$file_handle = fopen("/data/webroot/resource/php/f.txt","r");

結果顯示:

注意:f.txt文本文件保存時必定要設置爲UTF-8格式,避免出現亂碼。

<?php 
//首先採用「fopen」函數打開文件,獲得返回值的就是資源類型。
$file_handle = fopen("/data/webroot/resource/php/f.txt","r");
if ($file_handle){
    //接着採用while循環(後面語言結構語句中的循環結構會詳細介紹)一行行地讀取文件,而後輸出每行的文字
    while (!feof($file_handle)) { //判斷是否到最後一行
        $line = fgets($file_handle); //讀取一行文本
        echo $line; //輸出一行文本
        echo "<br />"; //換行
    }
}
fclose($file_handle);//關閉文件
?>

十4、PHP第二種特殊類型—空類型

NULL(NULL):NULL是空類型,對大小寫不敏感,NULL類型只有一個取值,表示一個變量沒有值,當被賦值爲NULL,或者還沒有被賦值,或者被unset(),這三種狀況下變量被認爲爲NULL。

 任務

瞅瞅空值的狀況!

在右邊編輯器中輸入四條指令,如圖:

一、第3行輸入第一條指令「$var;」,爲變量未賦值;

二、第5行輸入第二條指令「$var1 = null;」,將「null」賦值給變量「$var1」;

三、第7行輸入第三條指令「$var2 = NULL;」,將「NULL」賦值給變量「$var2」;

四、第10行輸入第四條指令「unset($var3);」,將變量「$var3」註銷定義。

結果顯示:

 

<?php 
 error_reporting(0); //禁止顯示PHP警告提示
 $var;
 var_dump($var);
 $var1 = null;
 var_dump($var1);
 $var2 = NULL;
 var_dump( $var2);
 $var3 = "節日快樂!";
 unset($var3);
 var_dump($var3);
?>

 

十5、 PHP-什麼是常量

什麼是常量?常量能夠理解爲值不變的量(如圓周率);或者是常量值被定義後,在腳本的其餘任何地方都不能夠被改變。PHP中的常量分爲自定義常量和系統常量(後續小節會詳細介紹)。

自定義常量是根據咱們開發的須要,而定義的常量,它經過使用PHP中的函數define()定義。(注:函數,咱們能夠理解爲一個混凝土攪拌機,亦或是一個篩子,經過入口提供原料,而後出口產出結果,在函數中也容許入口不提供任何數據,出口也容許不返回任何值。)

define()函數的語法格式爲:

bool define(string $constant_name, mixed $value[, $case_sensitive = true])

它有3個參數(也就是原料):

第一個參數「constant_name」爲必選參數,常量名稱,即標誌符,常量的命名規則與變量的一致,可是要注意哦,它可不帶美圓符號哦。第二個參數「value」爲必選參數,它是常量的值。第三個參數「case_sensitive」爲可選參數,指定是否大小寫敏感,設定爲true表示不敏感,通常不指定第三個參數的狀況下,默認第三個參數的值爲false。

(注: string表示參數類型爲字符串類型,mixed表示參數類型能夠接受爲多種不一樣的類型,case_sensitive = true表示默認爲布爾類型TRUE)

任務

咱也來定義一個常量玩玩!

當咱們須要計算圓面積時,咱們就須要使用圓周率,這時咱們就能夠將圓周率定義爲常量「PI」(一般常量都全用大寫),取值爲3.14。在右邊編輯器中輸入兩條指令,第3行輸入第一條指令「define("PI",3.14);」,第4行輸入第二條指令「define($p,3.14);」,如圖所示:

第一條指令,比較直觀;第二條指令,使用起來比較靈活。運行結果以下:

3.14
3.14
<?php
$p = "PII";
define("PI",3.14);
define($p,3.14);
echo PI;
echo "<br />";
echo PII;
?>

 十6、PHP-常量的做用

常量有什麼用呢?

常量主要功效是能夠避免重複定義,篡改變量值。在咱們進行團隊開發時,或者代碼量很大的時候,對於一些第一次定義後不改變的量,若是咱們使用變量,在不知情的狀況下,使用同一變量名時,變量值就會被替換掉,從而會引起服務器執行錯誤的任務。

此外,使用常量還能提升代碼的可維護性。若是因爲某些緣由,常量的值須要變動時候,咱們只須要修改一個地方。例如在作計算中,起初咱們取圓周率爲3.14,因而不少計算中咱們都使用3.14進行計算,當要求計算精度提升,圓周率須要取3.142的時候,咱們不得不修改全部使用3.14的代碼,假若代碼量比較多時,不只工做量大,還可能遺漏。

任務

感覺一下常量的優點!

在右邊編輯器中輸入一條指令,在第2行中輸入指令「define("PI",3.14);」,如圖所示:

結果爲:

<?php
define("PI",3.14);
$r=3;
echo "面積爲:".(PI*$r*$r)."<br />";
echo "周長爲:".(2*PI*$r)."<br />";
?>

 十7、PHP-認識一下系統常量

系統常量是PHP已經定義好的常量,咱們能夠直接拿來使用,常見的系統常量有:

(1)__FILE__ :php程序文件名。它能夠幫助咱們獲取當前文件在服務器的物理位置。

(2)__LINE__ :PHP程序文件行數。它能夠告訴咱們,當前代碼在第幾行。

(3)PHP_VERSION:當前解析器的版本號。它能夠告訴咱們當前PHP解析器的版本號,咱們能夠提早知道咱們的PHP代碼是否可被該PHP解析器解析。

(4)PHP_OS:執行當前PHP版本的操做系統名稱。它能夠告訴咱們服務器所用的操做系統名稱,咱們能夠根據該操做系統優化咱們的代碼。

任務

咱也玩玩系統常量唄!

在右邊編輯器中,輸入四條指令:

一、在第2行輸入第一條指令:

echo __FILE__;

二、在第4行輸入第一條指令:

echo __LINE__;

三、在第6行輸入第一條指令:

echo PHP_VERSION;

四、在第8行輸入第一條指令:

echo PHP_OS;

如圖所示:

咱們能夠看到相似以下的結果:

<?php
echo __FILE__;
echo "<br />";
echo __LINE__;
echo "<br />";
echo PHP_VERSION;
echo "<br />";
echo PHP_OS;
echo "<br />";
?>

 十8、PHP-常量如何取值

定義了常量,那麼就要使用常量,那麼如何獲取常量值呢?

獲取常量值的有兩種方法取值。第一種是使用常量名直接獲取值;例如計算圓周率的面積,以下(「*」是運算符,至關於乘號,後面部分的小節會介紹):

<?php
define("PI",3.14);
$r=1;
$area = PI*$r*$r; //計算圓的面積
?>

第二種是使用constant()函數。它和直接使用常量名輸出的效果是同樣的,但函數能夠動態的輸出不一樣的常量,在使用上要靈活、方便,其語法格式以下:

mixed constant(string constant_name)

第一個參數constant_name爲要獲取常量的名稱,也可爲存儲常量名的變量。若是成功則返回常量的值,失敗則提示錯誤信息常量沒有被定義。(注:mixed表示函數返回值類型爲多種不一樣的類型,string表示參數類型爲字符串類型)

例如:

任務

試試constant函數取值!

在右邊編輯器中輸入一條指令,在15行輸入指令「$area= constant($p)*$r*$r;」,如圖:

 十9、PHP-常量如何取值

定義了常量,那麼就要使用常量,那麼如何獲取常量值呢?

獲取常量值的有兩種方法取值。第一種是使用常量名直接獲取值;例如計算圓周率的面積,以下(「*」是運算符,至關於乘號,後面部分的小節會介紹):

<?php
define("PI",3.14);
$r=1;
$area = PI*$r*$r; //計算圓的面積
?>

第二種是使用constant()函數。它和直接使用常量名輸出的效果是同樣的,但函數能夠動態的輸出不一樣的常量,在使用上要靈活、方便,其語法格式以下:

mixed constant(string constant_name)

第一個參數constant_name爲要獲取常量的名稱,也可爲存儲常量名的變量。若是成功則返回常量的值,失敗則提示錯誤信息常量沒有被定義。(注:mixed表示函數返回值類型爲多種不一樣的類型,string表示參數類型爲字符串類型)

例如:

任務

試試constant函數取值!

在右邊編輯器中輸入一條指令,在15行輸入指令「$area= constant($p)*$r*$r;」,如圖:

<?php 
$p="";
//定義圓周率的兩種取值
define("PI1",3.14);
define("PI2",3.142);
//定義值的精度
$height = "中";
//根據精度返回常量名,將常量變成了一個可變的常量
if($height == "中"){
    $p = "PI1";
}else if($height == "低"){
	$p = "PI2";
}
$r=1;
$area = constant($p)*$r*$r;//計算圓的面積
echo $area;
?>

 二10、PHP-如何斷定常量是否被定義

若是常量被重複定義之後,PHP解析器會發出「Constant XXX already defined」的警告,提醒咱們該常量已經被定義過。那麼,在團隊開發,或代碼量很大的狀況下,咱們如何去斷定一個常量是否被定義呢?

defined()函數能夠幫助咱們判斷一個常量是否已經定義,其語法格式爲:

bool defined(string constants_name)

它只有參數constant_name,指的是要獲取常量的名稱,若存在則返回布爾類型true,不然返回布爾類型false; (注:bool表示函數返回值類型爲布爾類型)

任務

在右邊編輯器中,輸入兩條指令:

一、在第4行輸入第一行指令:

$is1 = defined($p);

二、在第5行輸入第二條指令:

$is2 = defined("PI2");

如圖所示:

咱們能夠看到返回的值爲布爾類型,如圖所示:

<?php 
define("PI1",3.14);
$p = "PI1";
$is1 = defined($p);
$is2 = defined("PI2");
var_dump($is1);
var_dump($is2);
?> 

 二11、什麼是運算符

什麼是運算符?運算符是告訴PHP作相關運算的標識符號。例如,你須要計算123乘以456等於多少,這時候就須要一個符號,告訴服務器,你須要作乘法運算。

PHP中的運算符有哪些?PHP運算符通常分爲算術運算符、賦值運算符、比較運算符、三元運算符、邏輯運算符、字符串鏈接運算符、錯誤控制運算符。

任務

咱們小時候學數學,首先學阿拉伯數字「1,2,3…」,而後就開始學習「1加1等於2」,那麼在PHP中,加法算術運算符用啥表示呢?用「+」來表示。在右邊的編輯器中,輸入一條指令「$c = $a + $b;」。

<?php 
$a = 1;
$b = 1;
$c = $a+$b;
echo $c;
?>

 二12、PHP中的算術運算符

    算術運算符主要是用於進行算術運算的,例如:加法運算、減法運算、乘法運算、除法運算。在PHP中的經常使用的算術運算符對應下表:

 

任務

考考服務器^_^,算個平均分唄!

在右邊編輯器中,輸入四條指令,如圖:

一、在第7行輸入第一條指令,用於計算總分;

$sum = $english+$math+$biological+$physical;

二、在第8行輸入第二條指令,用於計算平均分;

$avg = $sum / 4;

三、在第9行輸入第三條指令,計算數學比英語高几分;

$x = $math - $english;

四、在第10行輸入第四條指令,學習下平方的計算方法。

$x2 = $english * $english;

計算結果如圖所示:

<?php 
$english = 110; //英語成績
$math= 118; //數學成績
$biological = 80; //生物成績
$physical = 90; //物理成績

$sum = $english + $math + $biological + $physical;
$avg = $sum/4;
$x = $math - $english;
$x2 = $english * $english;

echo "總分:".$sum."<br />";
echo "平均分:".$avg."<br />";
echo "數學比英語高的分數:".$x."<br />";
echo "英語成績的平方:".$x2."<br />";

 二十3、PHP中的賦值運算符

PHP的賦值運算符有兩種,分別是:

(1)「=」:把右邊表達式的值賦給左邊的運算數。它將右邊表達式值複製一份,交給左邊的運算數。換而言之,首先給左邊的運算數申請了一塊內存,而後把複製的值放到這個內存中。

(2)「&」:引用賦值,意味着兩個變量都指向同一個數據。它將使兩個變量共享一塊內存,若是這個內存存儲的數據變了,那麼兩個變量的值都會發生變化。

"=":表示深拷貝,「&」:表示淺拷貝

任務

我們對比一下兩個賦值運算符的區別吧?

在右邊編輯器中輸入條指令,

一、在第3行中輸入第一條指令:

$b = $a;

二、在第4行中輸入第二條指令:

$c = &$a;

如圖所示:

從運行結果中:

 

<?php 
    $a = "我在慕課網學習PHP!";
	$b = $a;
	$c = &$a;
	$a = "我每天在慕課網學習PHP!";
	
	echo $b."<br />";
	echo $c."<br />";
?>

 二十4、PHP中的比較運算符

比較運算符主要是用於進行比較運算的,例如:等於、全等、不等、大於、小於。在PHP中經常使用的比較運算符以下表:

任務

咱來試試比較運算符吧!

在右邊編輯器中,輸入11條指令,如圖所示:

分別是第4行,第6行,第8行,第10行,第12行,第14行,第18行,第20行,第22行,第24行,第26行。運行結果以下:

從運行結果中,咱們能夠發現全等和等於的區別,不等與非全等的區別。

 二十5、PHP中的三元運算符

(「?:」)三元運算符也是一個比較運算符,對於表達式(expr1)?(expr2):(expr3),若是expr1的值爲true,則此表達式的值爲expr2,不然爲expr3。

任務

看看三元運算符咋用吧!

 在右邊編輯器中第3行輸入一條指令:

$b = $a >= 60 ? "及格": "不及格"; 

以下圖所示:

其expr1的做用是判斷$a值是否大於60,若大於60,則$b變量的值爲expr2的值「及格」,若小於60,則$b變量的值爲expr3的值「不及格」。運行結果如圖所示:

二十6、PHP中的邏輯運算符

邏輯運算符主用是進行邏輯運算的,例如:邏輯與、邏輯或、邏輯異或、邏輯非等,在PHP中經常使用的邏輯運算符以下表:(點擊看大圖)

咱們能夠從投票的角度來理解邏輯運算:

一、邏輯與:要求全部人都投票贊成,纔會經過某協議;

二、邏輯或:只要求一我的投票贊成就行;

三、邏輯異或:只能有且只能有一我的投票贊成;

四、邏輯非:某我的要反對,可是經過邏輯非,使其反對無效;

「與」和「或」有兩種不一樣形式運算符的緣由是它們運算的優先級(就是運算的有限順序,好比咱們小學的時候學習四則運算,加減乘除混合在一塊兒啦,優先計算乘除,再計算加減)不一樣。

任務

我來試一試:你們來投票吧!

咱們假設有A、B、C、D進行了投票,而後咱們用邏輯運算符,來斷定他們的投票是否能經過某些協議。在右邊編輯器中輸入六條指令,分別是第7行,第9行,第11行,第13行,第15行,第17行,以下圖所示:(點擊看大圖)

其中第7行,第9行,第11行須要括號括起來,由於這三個邏輯運算符的優先級沒有三元運算符高。運行結果以下:

<?php 
    $a = TRUE; //A贊成
	$b = TRUE; //B贊成
	$c = FALSE; //C反對
	$d = FALSE; //D反對
	//咱順便複習下三元運算符
	echo ($a and $b)?"經過":"不經過";//邏輯與
	echo "<br />";
	echo ($a or $c)?"經過":"不經過";//邏輯或
	echo "<br />";
	echo ($a xor $c xor $d)?"經過":"不經過";//邏輯異或
	echo "<br />";
	echo !$c?"經過":"不經過";//邏輯非
	echo "<br />";
	echo $a && $d ? "經過":"不經過";//邏輯與
	echo "<br />";
	echo $b || $c || $d?"經過":"不經過";//邏輯或
?>

 二十7、PHP中的字符串鏈接運算符

字符串鏈接運算符是爲了將兩個字符串進行鏈接,PHP中提供的字符串鏈接運算符有:

(1)鏈接運算符(「.」):它返回將右參數附加到左參數後面所得的字符串。

(2)鏈接賦值運算符(「.=」):它將右邊參數附加到左邊的參數後。

任務

兩種鏈接運算符區別在哪呢?

在右邊編輯器中輸入三條指令,

一、在第3行輸入第一條指令「$tip = $a.",歡迎您在慕課網學習PHP!";」

二、在第6行輸入第二條指令「$b .= ",道是無晴卻有晴";」

三、在第9行輸入第三條指令「$c = $c.",道是無晴卻有晴";」

以下圖所示:

從運行結果中:

咱們能夠看出鏈接賦值運算符在鏈接字符串的基礎上,還有賦值功能。此外,第6行的指令與第9行的指令效果相同,但前者代碼更簡潔。

<?php 
    $a = "張先生";
	$tip = $a.",歡迎您在慕課網學習PHP!";
	
    $b = "東邊日出西邊雨";	
    $b .=",道是無情卻有情";
    
	$c = "東邊日出西邊雨";	
    $c = $c.",道是無情卻有情";
    
	echo  $tip."<br />";
	echo  $b."<br />";
	echo  $c."<br />";
?>

 二十8、PHP中的錯誤控制運算符

PHP中提供了一個錯誤控制運算符「@」,對於一些可能會在運行過程當中出錯的表達式時,咱們不但願出錯的時候給客戶顯示錯誤信息,這樣對用戶不友好。因而,能夠將@放置在一個PHP表達式以前,該表達式可能產生的任何錯誤信息都被忽略掉;

若是激活了track_error(這個玩意在php.ini中設置)特性,表達式所產生的任何錯誤信息都被存放在變量$php_errormsg中,此變量在每次出錯時都會被覆蓋,因此若是想用它的話必須儘早檢查。

須要注意的是:錯誤控制前綴「@」不會屏蔽解析錯誤的信息,不能把它放在函數或類的定義以前,也不能用於條件結構例如if和foreach等。

任務

看看錯誤控制運算符的效果吧!

在右邊編輯器的第2行輸入一條指令「$conn = @mysql_connect("localhost","username","password");」,如圖所示:

在右邊編輯器的第2行輸入一條指令「$conn = @mysql_connect("localhost","username","password");」,如圖所示:

<?php  
 $conn = @mysql_connect("localhost","username","password");
 echo "出錯了,錯誤緣由是:".$php_errormsg;
?>

 二十9、PHP中的算術運算符(2)

取模算術符有啥用呢?

假設咱們要在一個考場安排了一場考試,對考生從1開始,都進行了編號,那麼怎麼讓服務器幫助咱們計算考生在的位置呢,進而打印考場的考生對照表呢?在右邊編輯器裏輸入兩條指令,如圖所示:

任務

我來試一試:

一、在第5行輸入第一條指令,用於計算在第幾排。

$line = ceil($no/$maxLine);

二、在第6行輸入第二條指令,使用取模算術符計算所在位置。

$row = $no%$maxLine?$no%$maxLine:$maxLine;

運行結果以下:

 還有 這部還有沒呀看的
相關文章
相關標籤/搜索