1. 程式人生 > >開始PHP,常量/變數與記憶體間的關係--傳值

開始PHP,常量/變數與記憶體間的關係--傳值

一.常見的PHP程式碼嵌入式方式,與html結合

要注意:檔名字尾必須形如xxx.php否則html將無法解析

二.php脫離html程式碼獨立工作,沒有其他程式碼

不需要藉助Apache工作,只需要php引擎;通過php.exe去執行php檔案

方式2帶來的問題是:只能由伺服器訪問,而方式一,則可以由客戶端訪問

三.PHP基礎

常見形式:<?php ?>

指令碼語言形式:<script language="php"></script>,易與<script type="javascript"></script>混淆

短標籤形式:<??>預設php已經不支援短標籤,要在php.ini中找到short_open_tag並改為on,由於http.conf載入了php.ini所以有必要重啟Apache----注意該操作會引起Apache(2.2)短暫的故障

古老的PHP版本形式:<?asp?>需要開啟php.ini的asp_tags=On

PHP註釋---兩大類:三種-----//, #, /**/ 凡是有業務邏輯的地方,必須要有註釋!!!但凡動態網站,無外乎瀏覽器與資料庫伺服器互動資料,拿到資料需要一個容器來承載,這就用到了.....

四.PHP變數

變數命名原則-----以$開頭,

以字母,數字,下劃線組成,

不能以數字開頭;

可以是中文;命名方式---駝峰命名CoachNAME;帶下劃線Coach_Name

是一種弱型別語言,變數可以為任意型別而不需要指定變數型別

輸出變數 echo, print_f, var_dump();刪除變數unset

常量----不能變化值的量:define,直接使用常量名;

常量的應用場景----例如描述網站路徑根目錄和下轄資料夾的關係;數學中常量的應用

命名規則 不能以$開頭,通常全部使用大寫字母,其他命名規則與變數一致

<?php

define('cpcsnickname','小松鼠');

echo cpcsnickname;

?>

記憶體空間分為 棧,堆,程式碼區,靜態區(全域性變數區)

全域性變數分為:常量區,變數區,靜態變數區

棧的特點:速度快,佔記憶體空間小;堆的特點:速度慢,佔的空間大

以執行 echo “喜歡陳培昌”為例;記憶體的變或過程如下:

$ispeak='喜歡陳培昌';

 

1.把'喜歡陳培昌' 讀入記憶體(放入全域性變數中的變數區----開闢記憶體空間,而開闢記憶體就一定有記憶體地址)

2.在棧內開闢一塊記憶體空間存放變數名ispeak

3.把'喜歡陳培昌'對應的地址賦值給棧內對應的變數名上

常量:值放在全域性變數區的常量區,變數區的值可以寫入多次,而常量區只能寫一次。

PHP指令碼執行結束----PHP引擎將php程式碼最後一行程式碼執行結束,

以上圖為例:PHP實際上開闢了4塊記憶體空間,當指令碼執行完畢後,PHP佔據的記憶體會被釋放,無論變數和常量(可以想想畢業後人走屋空的例子),作業系統會回收所有記憶體

注意!!!在結束符後還有空行,那麼php將把後面的空行解析成html標籤中的空行,所以如果沒有後續的php程式碼行,最好不用結束符,以免浪費頻寬!!!

注意!不是所有錯誤提示都精確到行

常量比變數的定義更加鬆散,有時候常量命名的很不正經,就得用如下方式訪問

<?php
define('-_-','小松鼠');
echo constant('-_-');
?>