前端向後臺的華麗轉身 — PHP入門篇

来源:http://www.cnblogs.com/wk1102/archive/2017/05/21/6886041.html
-Advertisement-
Play Games

三個月就這麼悄悄溜走了,本K對於前端雖然有了一定的認識,但對一些方面還是處於一種比較萌幣的狀態,就在這種萌幣狀態下,本K又跟著大神浩開始了後臺語言—PHP語言的學習。PHP的學習對於學過其他語言的人來說,是非常easy的(原因後續會提及),K在初次接觸的時候也就僅僅是對一些PHP的寫法有點膈應而已. ...


  三個月就這麼悄悄溜走了,本K對於前端雖然有了一定的認識,但對一些方面還是處於一種比較萌幣的狀態,就在這種萌幣狀態下,本K又跟著大神浩開始了後臺語言—PHP語言的學習。PHP的學習對於學過其他語言的人來說,是非常easy的(原因後續會提及),K在初次接觸的時候也就僅僅是對一些PHP的寫法有點膈應而已......不多說廢話了,下麵就由本K帶著同志們瞅瞅PHP到底是啥。

一、那些PHP不得不說的事。

 

  Hypertext Preprocessor,又稱為超文本預處理器(HTML為超文本標簽語言,這裡敲黑板...),就是我們所說的PHP。它是一種糅雜百家的後臺語言,在PHP中,可以見到C、Java等語言的寫法和它自創的一些寫法,這也就是為什麼說學過其他語言的人會比較容易接受PHP。

  至於現如今PHP的版本問題,我們現在常用的是5.3.10版本及以上版本,別問我為啥,就算問我我也不會告訴你原因是這個版本相容性好的!

  再者,開發PHP會需要一定的開發環境,我們現在經常用的是wamp(Windows + Apache + MySql + PHP),其他諸如Lamp(Linux + Apache + MySql + PHP)、PHPStudy、APPServer等,也是經常用的,在開發環境的選擇上,在兼顧自己工作需求的情況下,當然是蘿蔔青菜、各有所愛啦。

  最後,提一下PHP的相容性問題。PHP幾乎可以鏈接所有的資料庫,並友好的相容支持各種操作系統,所以說,PHP能夠火起來也是在情理之中的。

二、初識PHP。

聊了這麼多,PHP文件到底長啥樣呢?咱們來看圖說話~

  這就是我們最常見到的php文件結構,K來給大家講講結構從上到下都是些啥。

  這個是php文件或段落開始的標誌,象徵著一個php腳本從這裡開始;

  這句話是為了使php腳本中的中文能夠正常顯示,所添加的header;

  主體部分就不啰嗦了,後面會講到;

  這個是php腳本的結束,在某些情況下是可以省略掉的,後面K會細講。

  除上面大家看到的這種結構以外,php腳本還可以有很多寫法,但這裡K就不講了,因為其他幾種寫法不然就是回合系統起衝突,不然就是不推薦使用,K覺得還是先研究透徹這一種寫法,在去琢磨其他吧。

三、正兒八經說PHP — 入門篇

(一)PHP中的指令分隔符 — ;

  這一點是學過JS的同志們最容易犯錯誤的一點,這裡著重給大家說一下;的使用註意事項!(敲黑板......)

  1、PHP中的結構定義語句,不需要使用分號結尾,分支、迴圈、類、函數等}結尾的。
  2、PHP中的功能執行語句,不用}結尾的,必須使用分號結尾。
  3、特例:最後結束標記?>前的最後一條語句,可以省略分號。

(二)PHP中的註釋

  PHP中的註釋有四種,自己瞅圖~

(三)PHP中的變數

  1、PHP中的變數。聲明與使用,必須用$開頭。
  2、PHP是一種弱類型預言,變數其實並不需要聲明,可以直接給變數賦任何類型的值。
  3、PHP中可以使用連等同時聲明多個變數。而不能使用,分隔
   >>>例如:$num1=$num2=$num3=$num4=5;
  4、常用變數函數:
   4.1 unset(); 刪除並釋放變數;
   4.2 isset(); 檢測變數是否設置;
   4.3 empty(); 檢測變數是否為空(未設置或值為null都為空)。
  5、變數的命名:只能由字母數字下劃線組成,開頭不能為數字。
   >>> 而且,PHP中變數區分大小寫!
   >>> 但是,PHP內置函數或者類名不區分大小寫!
  6、PHP中的數據類型(八種)(敲黑板......)
   6.1 四種標量類型:布爾型Boolean、 整形Integer、 浮點型Float/Double、 字元串String
   6.2 兩種符合類型:數組Array、 對象Object
   6.3 兩種特殊類型:資源Resource、 空null
  7、整形的範圍:從-2^31~(2^31-1)超過這個範圍,自動轉為浮點型。

(四)PHP中的字元串

  PHP支持三種方式聲明字元串:
  1、'':單引號
  2、"":雙引號
  3、<<<:定界符 $str = <<< s(定界標識符)
   //定界符聲明字元串,通過<<<(定界標識符)開始
   //遇到頂格的定界標識符結束,一個空格都不能有
   //定界標識符可以是任意字母,只需要保證開始和結束一致即可
  s(頂格的定界標識符);
  4、三種聲明方式的區別:
   4.1 定界符功能預設與雙引號相同。
   4.2 單引號中不能解析變數;雙引號可以解析變數。
    >>> 雙引號解析變數時,需註意變數名後需用空格與其他字元分隔,或者用{}包裹起來 "hahaha${num}hahaha" "hahaha{$num}hahaha"均可。
   4.3 單引號中可以放雙引號;雙引號中可以放單引號。但是不能放自身相同類型的引號。
   4.4 單引號中不能使用轉義字元(除了單引號''本身,轉義符\本身);雙引號中可以使用轉義字元。

(五)PHP中的偽類型

  偽類型:並不是一種真實存在的數據類型。它的存在僅僅是告訴程式員可以是哪些、哪種數據類型,常用於撰寫幫助文檔時使用。
  mixed:代表參數可以是多種不同數據類型;
  number:代表參數可以使Integer或者Float;
  callback:代表參數可以是一個回調函數。

(六)PHP中的數據類型轉換

  1、自動類型轉換:表示運算的時候,Boolean、null、String等類型,會先自動轉為int和Float類型
    null --> 0 true --> 1 false --> 0
    string --> 第一個非數值字元前的數字,沒有轉為0 "123a" --> 123
  2、強制類型轉換,根據自己的需求,強制將變數轉為其他類型的變數:
   2.1 $新變數 = (新類型)$原變數
    >>> $str = (String)1;
  新類型可以使用全拼,也可以使用縮寫
  可以強制轉換的類型如下:
  (int),(integer) - 轉換成整型
  (bool),(boolean) - 轉換成布爾型
  (float),(double),(real) - 轉換成浮點型
  (string) - 轉換成字元串
  (array) - 轉換成數組
  (object) - 轉換成對象
   2.2 使用setType()函數強轉
   bool setType(mixed var,String type);第一個參數表示任何類型的變數,另一個參數表示字元串類型的數據類型
   2.3 兩種轉換的區別
    第一種是將轉換之後的結果賦給新變數;
    第二種直接修改了原變數的數據類型。

(七)PHP中的判斷變數類型的測試函數(崩潰狀......)

is_bool():判斷是否是布爾型
is_int()、is_integer()和is_long():判斷是否為整型。
is_float()、is_double()和is_real():判斷是否為浮點型
is_string():判斷是否為字元串
is_array():判斷是否為數組
is_object():判斷是否為對象
is_resource():判斷是否為資源類型
is_null():判斷是否為null
is_scalar():判斷是否為標量
is_numeric():判斷是否是任何類型的數字和數字字元串
is_callable():判斷是否是有效的函數名

(八)PHP條件判斷中算作false的情況(敲黑板......)

  1、Boolean:false
  2、Integer:0
  3、Float:0.0
  4、String: "" "0" ("0.0" "000" 都算對!只有一個0算錯!)
  5、空Array
  6、空Object僅在PHP4算false,其他版本對象都算TRUE
  7、null和尚未定義的變數都算錯
  8、所有資源都算對!!!!!(除PHP4,所有對象也算對 )

 (九)PHP中的常量(要堅強......)

  1、常量的定義
   bool define(String 常量名,mixed 常量值[,bool 是否區分大小寫]);
  2、常量的註意事項
   2.1 常量定義只能使用define函數
   2.2 常量名原則上要求必須使用大寫聲明。而且必須不能帶$符號
   2.3 常量聲明以後,預設全局範圍有效,沒有作用域之說
   2.4 常量不但不能改,而且不能刪,unset()、setType()等函數均無效
   2.5 常量預設區分大小寫,但是可以在聲明常量時,將define第三個參數設為true即可改為不區分大小寫,但是原則上不改
   2.6 常量必須使用define()定義後才能使用,如果使用未聲明的常量,則會將常量名轉為常量字元串,但是會報警告
   2.7 常量的值只能是標量
  3、可以使用constant讀取常量的值,註意用""包裹常量名
      可以使用get_defined_constants();獲取所有已定義常量,包括系統自定義的n多個常量

   就先給大家介紹這些小基礎,欲知後事如何,請......點贊


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JSON中存儲的是key:value,其實在編程的時候我們會遇到很多都是key:value的形式。比如:map,java對象(一個對象的一個屬性只會有一個值),資料庫中key:value對應著裡面存儲的一個數據,redis的本質就是key:value。所以你會發現key:value很有用。 1.將任 ...
  • Linux環境用g++編譯GDAL動態庫的詳細步驟和一些問題 ...
  • ConfigParser模塊,hashlib模塊,hmac模塊: 創建配置文件: 查看: 修改,添加,刪除: hashlib模塊: 加密類型:MD5,SHA1,SHA224,SHA256,SHA384,SHA512 hmac模塊: ...
  • 上篇用了單工程創建了SSM整合的web工程(http://www.cnblogs.com/yuanjava/p/6748956.html),這次我們把上篇的單工程改造成為多模塊工程 一:創建對應的多工程 首先原工程有對應的包如下 因為原單工程是 contoller 調用 service ,servi ...
  • 作業:計算器開發 (1)實現加減乘除及拓號優先順序解析; (2)用戶輸入 1 - 2 * ( (60-30 +(-40/5) * (-9-2*5/-3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等類似公式後,必須自己解析裡面的(),+,- ...
  • 有這麼一個有趣的問題,問: 有這麼一個不重覆的自然數數組,自然數長度為N,而數組長度為N 2,依次隨機把自然數放進數組中,請找出2個沒有被放進去的自然數。 例如:這個自然數數組是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]這十個數,某次隨機放入的順序是[2, 1, 3, 5, 7, ...
  • 【題目描述】 小南有一套可愛的玩具小人,它們各有不同的職業。有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了一個圈,它們有的面朝國內,有的面朝圈外。如下圖: 這時singer告訴小南一個謎題:“眼鏡藏在我左數第3個玩具小人的右數第1個玩具小人的左數第2個玩具小人那裡。” 小南發現, ...
  • 1.類的載入過程 JVM將類載入過程分為三個步驟:裝載(Load),鏈接(Link)和初始化(Initialize)鏈接又分為三個步驟,如下圖所示: 1) 裝載:查找並載入類的二進位數據; 2)鏈接: 驗證:確保被載入類的正確性; 準備:為類的靜態變數分配記憶體,並將其初始化為預設值; 解析:把類中的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...