PHP之基本语法
? ? ? 人生最幸福的事之一就是,鄰居家的wifi密碼是123456789,于是回家在pad上也照樣可以扯淡。任何語言都有自己的語法,這里只簡單說些我覺得應該注意的地方。
? ? ? 首先要明白,PHP是運行于服務器端的腳本語言,從上到下一步步執行。使用PHP寫的代碼是在服務器上就解析成html,配合js特效、css樣式,再由瀏覽器翻譯成頁面展示出來的,也就是說當一個頁面呈現在你面前時,對于不是鏈接性質的動作,如不會發送請求的點擊等,已經與服務器無關了,對于一些好看的樣式以及接下來伴隨鼠標移動可能出現的漂浮、滾動、收起是在在瀏覽器端即刻運行的。
? ? ? PHP代碼可以嵌套在html、js中,通常先由前端在該放數據的地方用一些固定數據,待前端頁面做好后,再由PHP程序員去將固定數據替換成PHP變量,這個工作被稱為套模板。因此,即便是后臺數據發生更改也無關前端,變量的數據跟著改,即便前端頁面改動,讀出來還是那些數據。
? ? ? 標準的PHP程序一般以<?php開頭,可以以?>結束但不推薦這樣做。于是打印hello world的程序可以是這樣的
? ? ?<?php
? ? ? ? ? ? ? echo 'hello world';
? ? ? 對于開始和結束標記,是可以在PHP的配置文件中修改的,比如<% code %>或者短標記<? code ?>,該短標記在配置文件php.ini中命令為short_open_tag,默認值為off,表示關閉,但只有上一種最為常見、、簡潔和通用。
? ? ? PHP的注釋單行時可用//或者#,#注釋是一種shell腳本風格,在配置文件中用得有。多行注釋用/*...*/,而PHP的關鍵字是大小寫不敏感的,echo與EcHo效果一樣。
? ? ? 變量的命名以$開頭,如$str='string'。PHP的變量去類型也分整型、浮點、字符串、對象類型等,還有資源類型,類似于C的指針型,偽類型,它是泛指多種數據類型的類型表示。比如在同一個程序腳本中,可連續寫:$s=1; $s=1.23; $s="string";,上一個變量的名字完全可以跟下一個一樣,前面沒有什么int、float等,也不會報重復定義的錯誤。這源于PHP是一門弱類型語言,它弱在變量不分類型的通通接收存儲,而且可以重復命名,下一個值自動將上一個值覆蓋掉。但是PHP還是有類型的區分的,在程序中也可以進行類型之間的自動或強制轉換,比如null空類型必要時自動轉換為bool型的false。
? ? ? 可變變量是個有點小特別的東西,比如
? ? ? <?php ? ?$a="something"; ?$b="a"; echo $$b; ?//輸出something,相當于echo $a;
? ? ? 注意到b前面有兩個美元符號,右邊的$b將被視為一個整體并取值,它的值是a,于是這個打印的變量實際是$a,再次視為整體并取得該變量的值,于是打印的是$a的值。這個東西很有用,在寫程序時可以非常靈活的命名一些變量。
? ? ? 類似于C++,PHP中也有引用,$b=&$a后,它倆就綁定到一塊兒了,它們的改變的影響是相互的。在C++中引用之所以相互改變值,是共用著一塊地址,但是對于PHP,好像不怎么提地址這種說法,PHP官網對此解釋成別名,類似unix的文件名和文件本身文件名跟文件本身的內容是兩個東西,我只了解一點Linux知識,多用戶多任務,這是它的屬性,因此在Linux下面可以邊瀏覽文件邊更改文件名,要是在win下面,請關閉該文件先。b是a的別名,它的值的改變會影響到a的內容,但是它們只是名字,與所擁有的內容無關,該這么理解?感覺還是糊涂的。
? ? ? PHP的常量的命名前面是沒有$的,在類外面是define('CON', 'host'),類里邊是const CON='host',CON就是該常量的名字。
? ? ? 常量一般是描述不變的值,PHP中有許多預定義的常量,最典型的當屬TRUE和FALSE,條件判斷時經常用到,還有如PHP_VERSION,當前的PHP版本。
? ? ? 魔術常量,聽起來絕筆高大上的一個東西,魔術一般不是變的嗎,怎么后邊還加一常量,初次接觸感覺有點別扭,實際上它還真的處于變與不變之中。比如魔術常量__LINE__,不變的是它肯定指的是行號,變的是,在哪一行它就被賦予那一行的行號,不同的行就是不同的值,其他的魔術常如__CLASS__、__FILE__、__DIR__、__METHOD__、__FUNCTION__、__NAMESPACE__等,它們的命名方式都一樣,區別__METHOD__特指類中的方法名,__FUNCTION__指一般的方法名。
? ? ? 當然,PHP作為一個比較強大的語言,一般語言有的特質基本都有,表達式、位運算、流程控制等等,表達式如加($a+$b)、減、乘、除、模運算,位運算如位與($a & $b)、位或、位異或,流程控制方面,如if...elseif、for、while、do...while、switch...case...default...break、continue等等,還有個foreach循環數組用的,非常方便,而且它的選擇語句的elseif可以挨著寫
? ? ?if(){
? ? ?}
? ? elseif(){
? ? }
? ? else{
? ? }
? ? 綜上,只起到一個簡單的概括回憶作用,詳細得看資料書。
? ? ? ? ? ? ?
轉載于:https://www.cnblogs.com/lazycat-cz/p/4005304.html
總結
- 上一篇: C#控制管理VisualSVN Serv
- 下一篇: PHP的反射机制