PHP基礎 (麥子學院 第二階段)

来源:https://www.cnblogs.com/Adobe_fans/archive/2018/08/14/9472179.html
-Advertisement-
Play Games

zendstudio 10.0破解版,新建完項目後,首先修改項目的編碼方式,統一改成utf-8 (選中項目,再右鍵properties:Text file encoding)。修改字體大小。 apache 安裝:httpd-2.2.17-win32,安裝成功後訪問apache伺服器:http://1 ...


zendstudio 10.0破解版,新建完項目後,首先修改項目的編碼方式,統一改成utf-8 (選中項目,再右鍵properties:Text file encoding)。修改字體大小。

apache 安裝:httpd-2.2.17-win32,安裝成功後訪問apache伺服器:http://127.0.0.1 localhost; apache配置文件:httpd.conf(在apache/conf/目錄下) :ServerRoot:apache的安裝目錄,Listen 80:埠號,DocumentRoot:apache的預設主目錄htdocs;Directory:瀏覽目錄;(當需要修改apache的預設主目錄的時候,需要修改 DocumentRoot 和 Directory 這兩項。),DirectoryIndex :index.html 預設首頁。

webServer工作原理:用戶輸入網址後,首先通過本地的DNS伺服器將輸入網址轉換成目的ip地址後返回給瀏覽器;瀏覽器再根據這個ip地址請求相應的某個目錄下的某個頁面,通過http request發送請求,web伺服器接到請求後,首先在預設主目錄中搜索是否有請求的頁面文件,如果沒有找到,通過http response發送給瀏覽器一個沒找到的響應(響應的是html標記,瀏覽器可以解析html標記)。如果找到了,首先apache查看請求文件的擴展名,apache只能處理html,css,javascript這樣靜態的文件,如果是這些靜態文件apache直接將找到的結果通過http response 返回給瀏覽器。如果請求的是.php為尾碼的文件,apache就處理不了,這是就將控制權移交給php引擎,php引擎具有處理,解析php代碼的能力,它會將php代碼解析的結果以html代碼的形式返回給apache伺服器,apache伺服器接收到php引擎的響應後,再通過http響應給用戶瀏覽器。

php版本:php-5.4.0-win32,解壓完成後將php.ini.development文件重命名為php.ini(php的配置文件),這樣php安裝完成。綁定php和apache:第一步,載入php5模塊,在apache配置文件中加入:LoadModule php5_module "php安裝路徑\php5apache2_2.dll" ,第二步,載入php配置文件所在目錄,在apache配置文件中加入:PHPIniDir "php安裝目錄" ,第三步,告訴apache什麼時候什麼類型的文件需要交個php引擎來處理,在apache配置文件中加入:AddType application/x-httpd-php .php 把.php結尾的文件交給php引擎來處理。對apache配置文件做了更改後需要重啟apache伺服器。phpinfo(),測試一下。

==========第4個視頻開始講授 PHP基礎語法:變數
PHP標準風格(推薦風格):<?php 代碼段;?> PHP每句代碼以分號 ; 結尾。 短風格(需要php配置文件中short_open_tag=On,再重啟apache):<? 代碼段; ?> 長風格<script language='php' 代碼段; /script> ASP風格(需要php配置文件中asp_tag=On,再重啟apache):<% 代碼段; %>
PHP中的註釋:單行://    #     多行:/* */

PHP文件擴張名:.php 。
PHP文檔組成:在php文件中可以同時書寫html、css、javascript/jquery、PHP代碼(在腳本中的任意位置都可以寫PHP代碼,在腳本中不只有PHP代碼的時候,<?php ?>標記一定要成對出現。當文檔中只有PHP代碼時,結束標記不要寫。);emmet插件:html:xt + tab鍵,自動生成html文件基本模板。

PHP變數:在程式執行期間可以變化的量,用變數保存值。以 $ + 變數名稱 聲明變數,變數名稱遵循駝峰標記法(小駝峰:首字母小寫,以後沒有個單詞第一個字母大寫;大駝峰:每一個單詞的首字母都大寫),或下劃線法:每個單詞之間用下劃線分隔。php的變數名稱嚴格區分大小寫,$a和$A是不同的兩個變數。當變數名稱重覆的時候,相當於對變數重新賦值,後面的會覆蓋之前的值。php是弱類型語言,變數可以不聲明直接使用。變數賦值:$變數名=值; $a=12; 使用變數名稱$a,就可以使用變數。在瀏覽器中,查看變數的值:echo $a; 當PHP腳本中有頭信息時,通過 header('content-type:text/html;character=utf-8'); 來發送頭信息,這句代碼告訴瀏覽器,以utf-8的編碼方式解析html文檔。修改PHP配置文件中的error_reporting=E_ALL&~E_NOTICE,之後重啟伺服器,可以屏蔽掉腳本在執行過程中報出的“註意”信息。一次聲明多個變數並且賦值相同:$i=$j=$k=$m=$n=1;一次輸出多個變數的值:echo $i,$j,$k; 多個變數之間以逗號分隔。

php可變變數(等量代換的原則)。php引用賦值:& 取地址符,把變數在記憶體中的地址覆給另一個變數。$j=&$i; $i和$j指向同一個記憶體空間,對$i和$j任何一個的修改,都將改變另一個變數的值。變數銷毀:unset(變數名)函數,銷毀變數相當於引用記憶體空間的變數名不存在了,但保存變數的記憶體空間依然存在。

==========第7個視頻開始講授 PHP基礎語法:數據類型
php中支持8中主要數據類型和3中偽類型。8種主要數據類型分3大類:標量類型(只能存儲單一數據,有分為類,整型int\interger(帶符號:-21億到21億,無符號:0到42億,超過整型的存儲範圍,會產生溢出的現象,可以存儲八進位數、十進位數、十六進位數。在顯示的時候都是將八進位和十六進位的數,轉換成十進位的數在瀏覽器上顯示。),浮點類型float\double\real(浮點類型帶有小數點或者科學計數法的寫法,帶有e或者E ,他的存儲範圍比整型大。),布爾類型bool\boolean(真:TRUE\true,假:FALSE\false。),字元串類型string(字元串定界符:單引號,雙引號(雙引號和單引號的區別:雙引號解析變數,單引號不解析變數,單引號的執行效率快。當內容中含有定界符時,用轉意符解決(\';\";\\;\$;\n換行;\r回車)。雙引號解析所有轉意符,單引號只能解析\\和\',這兩個轉意符。當頁面中要出現大於號>,小於號<,單引號,雙引號,不間斷空格,都要把它們轉換成html實體(進行html編碼)。php引擎在解析變數的時候,會儘可能多的向後去取合法字元,認為取的合法字元越多,變數的含義就越明確,花括弧的作用:將變數當做一個整體,{$變數名}或${變數名},在變數名稱和花括弧{}之間不要有空格。通過花括弧{}對字元串中的制定字元做增刪改查。字元串的下標從 0 開始。也可以用方括弧[],把字元串string當做數組操作,下標從 0 開始,完成增刪改查,每次只能增刪改一個字元位置。),HereDoc,NowDoc(當要輸出大段文本的時候,就需要用到這兩個HereDoc和NowDoc,HereDoc以三個小於號開始<<<,就相當於定界符中的雙引號,<<<名稱,3個雙引號後是名稱,名稱後直接回車,不能有空格。以名稱結束,在結束名稱之前,不能有任何的輸出(在結束名稱前不要有空格,必須頂格書寫)。在HereDoc中的變數將被解析,在NowDoc中的變數將被原樣輸出,不進行解析。))中文在UTF8下,一個中文占3個長度。),複合類型(數組array,對象object),特殊類型(資源resource,空null\NULL:未聲明的變數值為NULL,聲明變數並且賦值為NULL,通過unset()函數註銷過的變數。)。

3種偽類型:告訴函數可以接受哪些類型的參數。偽類型有3類:第一類,數值型munber:可以接受整數和浮點數。第二類,混合類型mixed:代表可以接收不同形式的參數。回調函數callback:

得到變數的數據類型:var_dump():將一個或多個變數的詳細信息列印到瀏覽器。

 

 

==========第10個視頻開始講授 PHP基礎語法:數據類型的轉換
在php中主要支持兩種數據類型的轉換:顯式轉換(強制轉換)和隱式轉換(自動轉換)。 

隱式轉換(自動轉換):變數根據上下文環境進行自動類型轉換。其他類型轉換成數值型(true轉換成整型的 1 ,false轉換成整型 0 ,null轉換成整型 0 。字元串轉換成數值型:以合法數字開始的字元串,取到第一個非法數字結束。(這個合法數字,可以是整型,浮點型(包括小數形式和科學計數法形式),正負都可))。以非法數字開頭的字元串(即以字母開頭的字元串),轉換成 0 。其他類型轉換成字元串型:數值類型直接轉換成數值本身;true轉換成 1 ,false轉換成 空制符串,null轉換成 空字元串。數組轉換成字元串 Array。資源resource轉換成 Resource id #數字。對象不可以直接轉換成字元串。其它類型轉換成布爾類型(找到轉換為false的,其它的都會轉換為true):整型0,浮點型0.0,空字元串''或者控制符串""或者'0',"0",null,空數組,這5類都將轉換成false,其它轉換都為true。 

顯式轉換(強制轉換):分為兩種:臨時轉換【(int\interger)->整型,(float)\(double)\(real)->浮點類型,(boolean)\(bool)->布爾類型,(string)->字元串類型,(unset)->空,(array)->數組,(object)->對象,資源類型不能進行強制轉換。臨時轉換並沒有改變這個變數的類型。通過函數的形式實現臨時轉換:intval($val):返迴轉換成整型的值,floatval \ doubleval($val):返迴轉換成浮點類型的值,strvar($val):返迴轉換成字元串的值,boolval($val):返迴轉換成布爾的值(php版本>5.5.0)。】和永久轉換(永久轉換會改變這個變數的類型)【settype($val, $type):設置變數的類型,type的可能值為:boolean \ integer \ float \ string \ array \ object \ null \,gettype($val):得到變數的類型(推薦用var_dump())。】。 

通過變數函數庫檢測變數類型,檢測的結果為bool類型:是否為整型:(is_int($var),is_integer($var),is_long($var));檢測是否為浮點類型:(is_float($var),is_double($var),is_real($var));檢測是否是字元串類型:is_string($var);檢測是否是布爾類型:is_bool($var);檢測是否是標量:is_scalar($var);檢測是否是數組is_array($var);檢測是否是資源:is_resource($var);檢測是否是對象:is_object($var);檢測是否為空:is_null($var); 檢測是否為數值型,或者字元串的數值(如:'1.1'):is_numeric($var);

 

==========第12個視頻開始講授 PHP基礎語法:常量
常量:是一個簡單值的標識符,和變數相反,在腳步執行期間該值不能改變,不能再對常量賦值。常量分為三類:系統常量,自定義常量,魔術常量。 

系統常量:是系統提供好的,拿過來可以直接使用的:PHP_VERSION \ PHP_OS \ M_PI 等; 

自定義常量:define($name, $value[,$case_insensitive=false]) 方括弧表示可選; 註意:常量名前沒有$ ;常量名稱以字母或者下劃線開始,儘量使用大寫字母;常量可以在任何地方定義和使用;常量一經定義不能改變也不能取消定義;常量的值只能為標量(整型,浮點類型,布爾,字元串),雖說可以為resource資源類型,但儘量不要使用;常量預設是區分大小寫的,如果需要不區分大小寫,通過設置define函數的第三個參數為true來實現。
使用常量:第一種,可以直接寫常量的名稱,不要放到引號之間,不帶$;第二種,constant($name);
檢測常量是否已經被定義:通過defined函數檢測常量名稱是否被定義,返回真或者假; 

在PHP5.3.0以後可以使用 const 在類定義之外定義常量: const 常量名稱=值; const定義的常量區分大小寫;
得到所有已被定義過的常量:get_defined_constants(),返回的是關聯數組;包括系統常量和自定義常量; 

魔術常量:__LINE__:返迴文件中當前的行號;__FILE__:返迴文件的完整路徑和文件名,註意:如果用在被包含文件中(include文件中),則返回被包含的文件名。從PHP4.0.2起,__FILE__返回一個絕對路徑,之前則返回相對路徑。__FUNCTION__:返回函數名稱,註意:自PHP5起常量返回該函數被定義時的名字(區分大小寫),在PHP4中該值為小寫;__CLASS__:返回類的名稱,自PHP5起常量返回該類被定義時的名字(區分大小寫),在PHP4中該值為小寫;__METHOD__:返回類的方法名(區分大小寫),PHP5.0.0新增;__DIR__:返迴文件所在目錄,如果用在被包含文件中,則返回被包含文件所在目錄,PHP5.3.0新增;__NAMESPACE__:返回當前命名空間的名稱(區分大小寫),此常量是編譯時定義的,PHP5.3.0新增;__TRAIT__:返回Trait的名字,區分大小寫,Trait名包括其被聲明的作用域,PHP5.4.0新增。 

 

==========第14個視頻開始講授 PHP基礎語法:運算符

 


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

-Advertisement-
Play Games
更多相關文章
  • 從遠程clone一個倉庫 。。。知識淺薄 git clone都發現貌似用的不順 因為我有幾個git賬號 但是我也不知道就是git賬號是怎麼保存在終端上的 所以當我需要用一個新的github賬號來clone遠程倉庫的時候 我需要新換一個用戶名跟密碼 但是問題來了。。。 我不知道怎麼在 git clon ...
  • 不能直接把後臺返回的數組數據賦值到定義的空數組中,一定要concat連接,否則結果是看似是個數組,但是獲取到的該數組卻為空,導致第一次上拉載入更多的時候是拿到的之前的數組依然是空數組。 var config = require('../../config') var util = require(' ...
  • SVG在HTML頁面 SVG 是使用 XML 來描述二維圖形和繪圖程式的語言。 SVG 文件可通過以下標簽嵌入 HTML 文檔:、 或者 。SVG的代碼可以直接嵌入到HTML頁面中,或您可以直接鏈接到SVG文件。 ...
  • 此文是我的出版書籍[《React Native 精解與實戰》](http://rn.parryqiu.com/)連載分享,此書由機械工業出版社出版,書中詳解了 React Native 框架底層原理、React Native 組件佈局、組件與 API 的介紹與代碼實戰,以及 React Native... ...
  • cropperjs的高度過大(container height too much) ...
  • 近幾年的的微服務概念大火特火,隨之框架也變得大火起來,尤其是spring boot,可能是因為spring cloud火起來的原因 搞得沉寂多年的dubbo也開始更新變得火起來。 說起微服務對於不瞭解整個系統架構歷史的小伙伴可能有些迷惑,怎麼就突然一下子就微服務了,有點摸不著頭腦,到底咋回事那?聽我 ...
  • 《劍指offer》: 首先熟悉一下java自帶的進位之間轉換的api: /*java中進行二進位,八進位,十六進位,十進位間進行相互轉換十進位轉成十六進位:Integer.toHexString(int i)十進位轉成八進位Integer.toOctalString(int i)十進位轉成二進位In ...
  • 問題:通常會遇到這樣一個問題,就是svn伺服器不能以SVN 協議訪問,而只能用https協議訪問。 主要原因是svn服務端集成了apache的安裝包,安裝後自動配置成了http協議訪問。如果需要svn協議訪問,則需要重新架設svn版本管理伺服器,不能集成apache,使用純svn安裝包即 “ sub ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...