常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在腳本執(zhí)行期間該值不能改變(除了所謂的魔術(shù)常量,它們其實不是常量)。常量默認為大小寫敏感。按照慣例常量標識符總是大寫的。
10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有宕昌免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
define("haha","hello!");
echo haha;
輸出hello!
變量總是傳值賦值。那也就是說,當將一個表達式的值賦予一個變量時,整個原始表達式的值被賦值到目標變量。
$haha=hoho;
echo $haha;
會輸出hoho
靜態(tài)變量僅在局部函數(shù)域中存在,但當程序執(zhí)行離開此作用域時,其值并不丟失。
給你看個例子:
這個沒用靜態(tài)變量?PHP
function Test()
{
$haha= 0;
echo $haha;
$haha++;
}
?
這里邊的變量加一是沒用的,在調(diào)用這個函數(shù)時會輸出“0”,但這個變量在函數(shù)外是不存在的,在看看下邊的
function Test()
{
static $haha= 0;
echo $haha;
$haha++;
}
?
現(xiàn)在,每次調(diào)用 Test() 函數(shù)都會輸出 $haha 的值并加一。
不知道我說的對你有用沒
一般說道靜態(tài)屬性是指類的靜態(tài)成員屬性,用static修飾,雖然名義上是靜態(tài)的,但是在類中仍然是可以通過成員方法更改它的值。類中的成員方法通過self::訪問靜態(tài)屬性而不是通過$this-
靜態(tài)常量,一般用const修飾,定義的可以不用寫$符號,且類中方法不可更改它的值,const關(guān)鍵字在比較低的php版本(小于等于php5.2)上不能使用。
據(jù)?PHP?的用戶手冊,在?PHP?語言中,常量只能包含標量數(shù)據(jù)(boolean,integer,float?和?string),所以,不能直接定義數(shù)組為常量。
通常做法是采用下面的方法去間接地去定義“數(shù)組常量”:
方法一:采用eval()函數(shù)
?php????
define('BEST_PHPER',"return?array('name'='鞏文','address'='china');");
$BEST_PHPER=eval(BEST_PHPER);
var_dump($BEST_PHPER);
方法二:采用json_encode()函數(shù)
?php????
define('BEST_PHPER',json_encode(array('name'='鞏文','address'='china')));
$BEST_PHPER=json_decode(BEST_PHPER,true);
var_dump($BEST_PHPER);
方法三:采用serialize()函數(shù)
?php
define('BEST_PHPER',serialize(array('name'='鞏文','address'='china')));
$BEST_PHPER=unserialize(BEST_PHPER);
var_dump($BEST_PHPER);
一、PHP安裝設(shè)置
PHP可以在多種操作系統(tǒng)下運行,現(xiàn)在的操作系統(tǒng)主要分為兩類,一是Windows系列,一是UNIX系列。
在這兩個系列的操作系統(tǒng)中安裝設(shè)置PHP的運行環(huán)境是有很大的區(qū)別的,下面分別加以描述。
(一)類UNIX操作系統(tǒng)下安裝設(shè)置
1.安裝
首先到去下載PHP的安裝文件和 下載Apache WEB服務(wù)器。一般把下載文件放入/usr/目錄下。
接下來開始安裝設(shè)置,讀者如不明白這些參數(shù)的意義,請不要隨意改變。
先安裝Apache和PHP。
tar -vzxf apache_1.3.x --x代表版本號如12或13等
tar -vzxf php-4.0.x或tar -vzxf php-3.0.x
cd apache_1.3.x
./configure --prefix=/www --/www代表安裝目錄在根目錄www下
cd ../php-4.0.x或cd ../php-3.0.x
./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
make
make install
cd ../apache_1.3.x
PHP3:./configure --activate-module=src/modules/php3/libphp3.a
PHP4:./configure --activate-module=src/modules/php4/libphp4.a
make
make install
第一、二行命令利用tar將下載的壓縮文件檔解壓還原在同名目錄下,然后在 Apache 的解壓目錄下進行環(huán)境設(shè)定,--prefix 選項代表 Apache 的安裝目錄路徑。然后進入 PHP 的解壓目錄中,進行PHP的環(huán)境設(shè)定,如果沒有使用 MySQL 數(shù)據(jù)庫,就可省略 --with-mysql 的選項,但一定要加入 --with-apache 選項,而且 Apache解壓目錄名一定要正確。設(shè)定完 PHP 之后就編譯、安裝到 Apache 的指定目錄中。然后在 Apache 解壓目錄中再完成 PHP 的模式庫安裝后,再編譯和安裝 Apache 后就初步完成了安裝工作。接著就是要設(shè)定 Apache 才能讓 Web Server 順利運作。
2.設(shè)置
首先設(shè)置php.ini文件,
cd ../php-4.0.x或cd ../php-3.0.x
PHP3:cp php3.ini-dist /usr/local/lib/php3.ini
PHP4:cp php.ini-dist /usr/local/lib/php.ini
讀者可以編輯ini文件以符合自己要求,當然如果不清楚設(shè)置的話,則使用缺省設(shè)置,讀者也可以指定另一個目錄,但需要在第六步設(shè)定條件--with-config-file-path=/path接著設(shè)定Apache服務(wù)器,需要在Apache的設(shè)定文件httpd .conf或srm.conf中加入下面的字串。
PHP 3: AddType application/x-httpd-php3 .php3
PHP 4: AddType application/x-httpd-php .php
(二) Windows下的安裝
下載PHP的安裝程序,準備安裝,因為Windows系列的安裝區(qū)別不大,本文以Windows 98下的安裝為例。在安裝前你應(yīng)該已經(jīng)安裝好了PWS 4.0。
1.安裝
釋放壓縮文件到指定的目錄如C:\PHP\,然后復(fù)制php.ini-dist或php.ini-optimized到c:\windows目錄中(Windows NT和Windows 2000中應(yīng)為c:\winnt),并且重命名為php.ini 。
編輯你的php.ini文件,你可以改變extension_dir的設(shè)置為你的php的安裝路徑,如上面所說的“c:\php”,選擇你要加裝的php的擴展模塊,在ini文件里的extension=后面加入php_*.dll行,你也可以在腳本(script)里動態(tài)加載。PHP也提供了一些可以提供其它功能的附加模塊,可以從相關(guān)網(wǎng)站下載。
2.設(shè)置
以上步驟完成以后,需要注意檢查是否安裝了DCOM98,如果沒有,還要安裝DCOM98,這可以在完整版的VB6中找到。還需要設(shè)置注冊表,一般在下載的PHP壓縮包里含有名為PWS-php4.reg的注冊表文件。需要先用記事本修改這個文件,把其中的“[PUT PATH HERE]”替換為PHP的解壓目錄,需要注意目錄分隔要用雙斜線“\\”。存盤后在右鍵菜單中把它合并到注冊表中就行了。
3.PHP附加庫(擴展模塊)
為了擴展PHP的功能,PHP提供了許多附加庫,這些附加庫都是以DLL文件的形式提供的,在使用前需要修改php.ini文件,用Extention設(shè)置所需的附加庫。下表是常用的附加庫,更多的附加庫可以到網(wǎng)上下載。
Php_calendar.dll 日歷轉(zhuǎn)換
php_crypt.dll 加密模塊
php_dbase.dll Dbase的函數(shù)模塊
php_imap4r2.dll IMAP 4 函數(shù)
php_ldap.dll LDAP函數(shù)
php_msql1.dll mSQL 1客戶
php_msql2.dll mSQL 2客戶
php_mssql.dll MSSQL 客戶
php3_mysql.dll(PHP 4內(nèi)建) MySQL 的函數(shù)模塊
php_nsmail.dll Netscape郵件函數(shù)
php_oci73.dll Oracle函數(shù)模塊
php_zlib.dll ZLib函數(shù)模塊
二、PHP語言入門
(一)語法基礎(chǔ)
1.如何在頁面嵌入PHP代碼
PHP可以嵌入到HTML的代碼中間,也就是說可以把HTML和PHP代碼混合在一起使用,這樣寫起代碼會很愜意的。當然要有能區(qū)分PHP代碼和HTML的方法,可以使用以下4種方法:
(1) echo (“這是最常用的方式”);
(2)php
echo(“如果你想服務(wù)于XML文檔就是用這種方式”);
(3)
(4)
上面第(1)種第(4)種方式在Windows 98下需要單獨設(shè)置才能使用。
2.程序的注釋和如何結(jié)束語句
在PHP程序里,注釋有如下三種注釋方式:
(1)/* 第一行
第二行
多行注釋 */
(2)// 單行注釋
(3)# 單行注釋
上面這三種注釋可以混合使用,讀者可以根據(jù)習(xí)慣選用,需要注意的是多行注釋不能嵌套多行注釋。
PHP語句之間使用“;” 分隔,它也是語句結(jié)束符。
(二)常量和變量
首先看下面一個實例
范例:test2_1.php
php
//常量的演示
echo “_FILE_”; //輸出:test2_1.php
echo “這是一個常量”; //輸出:這是一個常量
define(“THECONSTANT”,“這是一個自定義的常量”);
echo THECONSTANT; //輸出:這是一個自定義的常量
//變量的演示
$StrOutput=“這是一個變量”;
echo $StrOutput; //輸出:這是一個變量
echo “變量是這樣誕生的:$StrOutput”; //輸出:變量是這樣誕生的:這是一個變量
echo “問題是這樣出現(xiàn)的:$StrOutPut”; //輸出:問題是這樣出現(xiàn)的:
可以從以上的范例看出,在編寫PHP文件的時候,可以省略HTML標頭。
1.常量
2.變量
PHP的變量是非常有意思。
(1)變量的作用范圍
范例test2_2.php
php
$strtest="你說";
function output1()
{
echo $strtest;
}
function output2()
{
global $strtest;
echo $strtest;
}
output1(); //輸出:
output2(); //輸出:你說
(2)變量的變量
范例:test2_3.php
$name=″hello″;
$$name=″world″; //等同于$hello=″world″;
echo ″$name $hello″; //輸出:hello world
echo ″$name $$name″; //同樣輸出:hello world
for($i=1;$i=5;$I++)
{
${var."$i"}=$i;
}
echo $var3; //輸出:3
(3)變量的類型
范例test2_4.php:
php
$strtype="字符串";
/*添加字符串*/
$strtype=$strtype."再增加一些字符串 ";
/* 另一種增加字符串方式,并換行*/
$str .= "\n第二行的字符串";
/* 得到第一個字符*/
$strtype='This is a test.';
$first = $str[0]; //輸出:T
/*得到最后一個字符*/
$strtype='This is still a test.';
$last=$str[strlen($str)-1]; //輸出:.
//整數(shù)類型例子
$strtwo="2.5test";
$inttype=1;
echo ($inttype+$strtwo) //輸出:3.5
echo ("$inttype".$strtwo) //輸出:12.5test
//浮點數(shù)
$float1 = 1.732;
$float2 = 1.4E+2;
這樣大家可以看出$strtype實際上是一個字符串型的變量,PHP支持五種變量類型:String、Integer、Floating-point numbers (Double)、Array、Object。
String是字符串類型。字符串變量是最常用的類型,兩個字符串連接符則是".",從上面的例子可以看出,PHP支持以“\”后面的有特殊意義的字符,如“\n”代表回車。
integer 為整數(shù)類型。在 32 位的操作系統(tǒng)中,它的有效范圍是 -2,147,483,648 到 +2,147,483,647。要使用 16 進制數(shù)可以在前面加 0x。
double 為浮點數(shù)類型。在 32 位的操作系統(tǒng)中,它的有效范圍是 1.7E-308 到 1.7E+308。對象和數(shù)組這兩種類型比較復(fù)雜,請看函數(shù)和類。
我們也可以使用settype(變量,數(shù)據(jù)類型)函數(shù)強制轉(zhuǎn)換數(shù)據(jù)類型,使用gettype(變量)獲得變量類型。也允許這樣強制轉(zhuǎn)換$inttype = (int) $strtype;。
(三)運算符
1.算術(shù)運算符
算術(shù)運算 (arithmetic operators) 符號,是用來處理四則運算的符號,這是最簡單,也最常用的符號,幾乎所有語言的算術(shù)運算符都差不多,如^00100010a^。
2.邏輯運算符
邏輯運算通常用來獲得邏輯值的真假,在所有的編程語言里,邏輯運算符是非常重要的,邏輯運算符如^00100010b^所示。
3.關(guān)系運算符
關(guān)系運算就是比較大小用的,如^00100010c^所示。
4.位運算符
PHP有下面一些二進制位運算符如^00100010d^。
5.運算符的優(yōu)先級
不同的運算符在同一行程序里有不同的運算順序,PHP程序里的運算順序如^00100010e^,越往下表明運算符的優(yōu)先級別越高,同時應(yīng)注意結(jié)合規(guī)則。
(四)流程控制語句
1.if條件語句
它在定義上有三種形式:
(1)第一種最簡單的形式。
if (expression) statement;
(2)第二種帶有else(否則)的形式。
if (expression) {
statement1;
} else {
statement2;
}
(3)第三種帶有elseif的形式。
if (expression) {
statement1;
} elseif {
statement2;
} else{
statement3;
}
if條件語句是允許嵌套的,也就是在if語句中含有另外的if語句,但要注意嵌套層次,否則不能得到想要的結(jié)果。
2.循環(huán)語句
循環(huán)一般可以分為以下幾種。
(1)while循環(huán),也叫“當型循環(huán)”,就是說“當條件為真就執(zhí)行循環(huán)體”,在PHP中的定義如下:
while (expression)
{statement}
這種循環(huán)先判斷表達式為真再執(zhí)行,可能一次也不執(zhí)行。
(2)do while循環(huán)叫做“直到型循環(huán)”,它最少執(zhí)行一次,意思就是“先執(zhí)行循環(huán)體直到條件為真才退出”,PHP的定義為
do {
statement
} while (expr);
上面兩種循環(huán)都是不知道循環(huán)的次數(shù),或者在條件比較模糊的情況下使用。
(3)for循環(huán),在PHP4中有兩種for循環(huán),一是for,另一是foreach循環(huán)。他們主要的區(qū)別在于:
for循環(huán)用于循環(huán)次數(shù)已知的循環(huán);
foreach則是針對數(shù)組和散列的循環(huán);
for循環(huán)的PHP定義如下:
for (expr1; expr2; expr3) {
statement
}
下面是一個簡單的例子:
php
for ($i = 1; $i = 10; $i++) {
echo $i;
}
PHP有數(shù)組和散列,后面介紹它們的概念,數(shù)組元素個數(shù)沒有固定,如果要訪問每一個元素,用foreach可以從第一個元素訪問到最后一個元素,這樣我們可以不必求出元素的個數(shù),就能遍歷整個數(shù)組,在PHP中foreach循環(huán)的定義如下:
foreach(array_expression as $value) statement //普通數(shù)組
foreach(array_expression as $key = $value) statement //散列
請做一下下面的例子:
?php
// foreach例一
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
echo "Current value of \$a: $v.\n";
}
// foreach例二
$a = array (1, 2, 3, 17);
$i = 0;
foreach($a as $v) {
echo "\$a[$i] = $k.\n";
}
// foreach例三
$a = array (
"one" = 1,
"two" = 2,
"three" = 3,
"seventeen" = 17
);
foreach($a as $k = $v) {
echo "\$a[$k] = $v.\n";
}
3.SWITCH多條件語句
switch (expression) {
case condition1:
statement1;
break;
case condition2:
statement2;
break;
......
default:
statement n;
break;
}
這時要介紹兩個特殊的流程控制語句:break和continue。
php
For($I=1;$I=10;$I++)
{
if ($I==1) continue;
echo "測試:".$I;
if ($I==2) break;
}
上面的程序輸出則是:測試:2,而且永遠也執(zhí)行不到$I=3。
4.引用文件
在我們編程的過程中,肯定會遇到很多的地方需要許多相同的模塊或者函數(shù),當然我們也可以使用復(fù)制和粘貼的方法把程序塊放入到程序里,而一旦我們要修改這些語句中的一處,則必須修改所有粘貼的代碼,這當然很累,所幸PHP提供了引用文件的方法,他們就是require,require-once,include,include-once。require方法會程序在執(zhí)行前先讀入 require 所指定引用的文件,使它變成 PHP 程序網(wǎng)頁的一部份。而PHP的include方法則是PHP 的網(wǎng)頁在遇到 include 所指定的文件時,才將它讀進來。這種方式,更符合人們的習(xí)慣。
(五)數(shù)組
假如變量是可以放入一本書的盒子的話,那么數(shù)組就是可以放許多書的書架,在PHP中不止可以放書,還可以放別的物品。
1.普通數(shù)組
我們在C、VB等語言里使用的數(shù)組,都是以數(shù)字作為下標來索引數(shù)組的值,在PHP中是這樣表示的:$a[1]=1,$a[2]=2...$a[n],雖然PHP的普通數(shù)組比C語言在數(shù)據(jù)類型方面前進了一大步(C語言里可以使用結(jié)構(gòu)代替),而真正比C語言優(yōu)越的是引入了哈希表(hash table聯(lián)合數(shù)組)。
2.哈希表(聯(lián)合數(shù)組)
。請看下例
范例:
php
$a[1]= $f; //普通數(shù)組
$a["apple"]= "sweet"; //聯(lián)合數(shù)組
$a[1][0]= $f; //二維數(shù)組
$a["apple"][2]="tart"; //普通數(shù)組和聯(lián)合數(shù)組連用
$a["apple"][4]["color "][0]= "bad"; //四維數(shù)組
(六)函數(shù)
函數(shù)就是能執(zhí)行特定功能的語句塊。在這些年編程語言發(fā)展的趨勢就是代碼的重用性和結(jié)構(gòu)清晰,象C的輸入輸出等就是用函數(shù)來完成的,在PHP里也是這樣的,函數(shù)在PHP運用非常廣泛,也是各種PHP函數(shù)使PHP變?yōu)閺姶蟮腤EB編程腳本語言的原因之一,我們在前面的學(xué)習(xí)的過程中也遇到了不少,如“echo”、“require”等,而我們可以通過用戶定義的函數(shù)使程序結(jié)構(gòu)變得更清晰、更合理以及代碼更簡潔。
1.用戶定義函數(shù)
,PHP的函數(shù)定義如下
function 函數(shù)名(參數(shù)1,參數(shù)2,...)
{ 語句塊
return 返回值}
PHP的函數(shù)可以有返回值,也可以沒有返回值,這樣可以省略上面的返回語句。
2.參數(shù)
php
$str=″我是參數(shù)1″;
$str2=″我是參數(shù)2″;
function testFunc($testarg1,testarg2,testarg3=″我是測試″)
{
echo $testarg1.″\n″;
echo $testarg2.″\n″;
echo $testarg3.″\n″;
$testarg1=$testarg1.″測試″;
$testarg2=$testarg2.″測試″;
}
testfunc($str,&$str2);
echo $str.″\n″;
echo $str2.″\n″;
/*
調(diào)用里后輸出:
我是參數(shù)1
我是參數(shù)2
我是測試
我是參數(shù)1
我是參數(shù)2測試
*/
請注意看上面的函數(shù),PHP的參數(shù)使用比較靈活,我們可以象C里面一樣使用“&”引用參數(shù),在函數(shù)里改變參數(shù)的值的話,就直接改變了這個變量的值,也可定義參數(shù)的缺省值,這樣可以在需要的時候省略參數(shù)。
一、InstallShiteld 5.1的安裝與卸載
1.安裝的系統(tǒng)要求如^00100011a^
2.安裝操作步驟如^00100011b^
3.卸載InstallShiteld 5.1
安裝完成后,安裝程序除了將主要程序文件復(fù)制到指定的目標文件夾外,還將部分DLL文件復(fù)制到Windows的系統(tǒng)目錄中,并自動在C盤根目錄下建立一個名為“My Installations”的文件夾,作為所制作的安裝工程的默認存放位置。在卸載前,先將該目錄下的工程進行備份,再打開Windows控制面板中的“添加/刪除程序”,選擇“InstallShield 5.1 Professional Edition”,單擊“添加/刪除”,確認后即可完成卸載。
定義常量和定義變量的區(qū)別:
1. 常量前面沒有美元符號($)
2. 常量只能用 define() 函數(shù)定義,而不能通過賦值語句
3. 常量可以不用理會變量范圍的規(guī)則而在任何地方定義和訪問
4. 常量一旦定義就不能被重新定義或者取消定義
5. 常量的值只能是標量
更詳細的關(guān)于變量和常量的知識請參見參考資料。