一、軟件準(zhǔn)備:Apache(2.0.52): PHP(4.3.9): MySQL(4.1.7): Zend Optimizer(2.5.5): phpMyAdmin(2.6.0): 二、安裝 PHP :(1)、下載后得到 php-4.3.9-Win32.zip ,解壓至 C:\PHP(這個(gè)路徑可以隨意,不過(guò)下面要是用到這個(gè)路徑,請(qǐng)相應(yīng)修改);(2)、進(jìn)入 C:\PHP ,將 php.ini-dist 復(fù)制一份放到 C:\WINNT( Windows 2003 下為 C:\Windows )內(nèi),改名為 php.ini ,然后用記事本打開(kāi),利用記事本的查找功能搜索 extension_dir = "./" ,并將其路徑指到你的 PHP 目錄下的 extensions 目錄,比如:extension_dir = "C:\PHP\extensions" ;再搜索 register_globals = Off ,將 Off 改成 On ;如果你想讓 PHP 支持更多功能模塊,請(qǐng)按照下面的步驟去做,如果不想的話,直接保存關(guān)閉 php.ini 即可.PHP 支持的模塊很多,搜索:;Windows Extensions;Note that MySQL and ODBC support is now built in, so no dll is needed for it.;下面所列的就是 PHP 預(yù)支持的擴(kuò)展模塊,默認(rèn)情況下都用分號(hào)在前面注釋掉了,如果你想 PHP 支持某個(gè)模塊,請(qǐng)將前面的“;”去掉即可。如果安裝完畢后測(cè)試時(shí),彈出不支持 xxx.dll 模塊的話,直接將前面分號(hào)再加上去,保存后重啟 Web 服務(wù)器就可以了。(3)、把 C:\PHP\php4ts.dll 和 C:\PHP\dlls 目錄下的所有文件復(fù)制粘貼到 C:\WINNT\system32\( Windows 2003 下為 C:\Windows\system32 )內(nèi);(4)、配置 IIS 使其支持 PHP :首先必須確定系統(tǒng)中已經(jīng)正確安裝 IIS ,如果沒(méi)有安裝,需要先安裝 IIS ,安裝步驟如下:a Windows 2000 下的 IIS 安裝:用 Administrator 帳號(hào)登陸系統(tǒng),將 Windows 2000 安裝光盤(pán)插入光盤(pán)驅(qū)動(dòng)器,進(jìn)入“控制面板”點(diǎn)擊“添加/刪除程序”,再點(diǎn)擊左側(cè)的“添加/刪除 Windows 組件”,在彈出的窗口中選擇“Internet 信息服務(wù)(IIS)”,點(diǎn)下面的“詳細(xì)信息”按鈕,選擇組件,以下組件是必須的:“Internet 服務(wù)管理器”、“World Wide Web 服務(wù)器”和“公用文件”,確定安裝。安裝完畢后,在“控制面板”的“管理工具”里打開(kāi)“服務(wù)”,檢查“IIS Admin Service”和“World Wide Web Publishing Service”兩項(xiàng)服務(wù),如果沒(méi)有啟動(dòng),將其啟動(dòng)即可。b Windows 2003 下的 IIS 安裝:由于 Windows 2003 的 IIS 6.0 集成在應(yīng)用程序服務(wù)器中,因此安裝應(yīng)用程序服務(wù)器就會(huì)默認(rèn)安裝 IIS 6.0 ,在“開(kāi)始”菜單中點(diǎn)擊“配置您的服務(wù)器”,在打開(kāi)的“配置您的服務(wù)器向?qū)А崩镒髠?cè)選擇“應(yīng)用程序服務(wù)器(IIS,ASP.NET)”,單擊“下一步”出現(xiàn)“應(yīng)用程序服務(wù)器選項(xiàng)”,你可以選擇和應(yīng)用程序服務(wù)器一起安裝的組件,默認(rèn)全選即可,單擊“下一步”,出現(xiàn)“選擇總結(jié)界面”,提示了本次安裝中的選項(xiàng),配置程序?qū)⒆詣?dòng)按照“選擇總結(jié)”中的選項(xiàng)進(jìn)行安裝和配置。打開(kāi)瀏覽器,輸入:,看到成功頁(yè)面后進(jìn)行下面的操作:PHP 支持 CGI 和 ISAPI 兩種安裝模式,推薦使用 ISAPI 模式。a、CGI 模式安裝步驟:在“控制面板”的“管理工具”中選擇“Internet 服務(wù)管理器”,打開(kāi) IIS 后停止服務(wù),然后在左側(cè)“默認(rèn)Web站點(diǎn)”上單擊右鍵選擇“屬性”,在打開(kāi)的“默認(rèn) Web 站點(diǎn)屬性”窗口的“主目錄”標(biāo)簽里找到并點(diǎn)擊“配置”按鈕,在彈出的“應(yīng)用程序配置”窗口中找到并點(diǎn)擊“添加”按鈕,在彈出的窗口中新增一個(gè)擴(kuò)展名映射,擴(kuò)展名為 .php ,單擊“瀏
北安網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),北安網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為北安成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的北安做網(wǎng)站的公司定做!
在VB.NET的類里,實(shí)現(xiàn)一個(gè)接口的語(yǔ)句是:
implements接口名稱
例如,下面定義一個(gè)車(總稱)的接口,這里的車是各種車的總稱:
Public Interface ICar
Property color() As String
Property speed() As Long
Sub PrintInfo()
End Interface
然后在不同類型的“車”類里實(shí)現(xiàn)它:
Public Class A_Car
Implements ICar
Dim m_color As String, m_speed As Long
Public Property color() As String Implements ICar.color
Get
Return m_color
End Get
Set(ByVal Value As String)
m_color = Value
End Set
End Property
Protected Overrides Sub Finalize()
MsgBox(I was deconstructed!)
End Sub
Public Sub New()
m_color = Red
m_speed = 210
MsgBox(I was constructed!)
End Sub
Public Property speed() As Long Implements ICar.speed
Get
Return m_speed
End Get
Set(ByVal Value As Long)
m_speed = speed
End Set
End Property
Public Sub PrintInfo() Implements ICar.PrintInfo
MsgBox(Color: m_color vbNewLine Speed: m_speed, MsgBoxStyle.Information)
End Sub
End Class
在 Form 的 Load 事件中編寫(xiě):
Dim myCar As New A_Car
myCar.PrintInfo()
運(yùn)行之后就創(chuàng)建了一個(gè) A_Car 類的實(shí)例 myCar,然后出現(xiàn)兩個(gè)對(duì)話框,分別說(shuō)明實(shí)例已經(jīng)創(chuàng)建和汽車的信息。當(dāng)窗體卸載時(shí),這個(gè)類的實(shí)例 myCar 將自動(dòng)銷毀,這時(shí)將出現(xiàn)一個(gè)“I was deconstructed!”的對(duì)話框。
聲明一個(gè)接口時(shí),需要考慮以下幾點(diǎn):
1.接口主體只限于對(duì)方法,索引器以及屬性的聲明;
2.接口成員是隱式公開(kāi)的,如果對(duì)其顯式指定訪問(wèn)級(jí)別,就會(huì)出現(xiàn)編譯器錯(cuò)誤;
3.接口中不能包含字段,構(gòu)造函數(shù)和常量等;
4.在接口中不能實(shí)現(xiàn)任何方法,屬性或者索引器;
5.在指定方法時(shí),只需要給出返回類型,名稱和參數(shù)列表,然后分號(hào)結(jié)束。
面向?qū)ο蟮慕涌?/p>
在C++中,一個(gè)類被允許繼承多個(gè)類。但是在Java以后的語(yǔ)言不被允許。
這樣,如果想繼承多個(gè)類時(shí)便非常困難。所以開(kāi)發(fā)方想出了新辦法:接口。
一個(gè)接口內(nèi),允許包含變量、常量等一個(gè)類所包含的基本內(nèi)容。但是,接口中的函數(shù)不允許設(shè)定代碼,也就意味著不能把程序入口放到接口里。由上可以理解到,接口是專門(mén)被繼承的。接口存在的意義也是被繼承。和C++里的抽象類里的純虛函數(shù)是相同的。不能被實(shí)例化。
定義接口的關(guān)鍵字是interface,例如:
publicinterfaceMyInterface{
public void add(int x,int y);
public void volume(int x,int y,int z);
}
繼承接口的關(guān)鍵字是implements,相當(dāng)于繼承類的extends。
需要注意的是,當(dāng)繼承一個(gè)接口時(shí),接口里的所有函數(shù)必須全部被覆蓋。例如:
class Demo implements MyInterface{
public void add(int x,int y){
System.out.println( +(x+y));
}
public void volume(int x,int y,int z){
System.out.println( +(x*y*z));
}
public static void main(String args[]){
Demo d=new Demo();
d.add(10,20);
d.volume(10,10,10);
}
}
輸出結(jié)果:
30
1000
當(dāng)想繼承多個(gè)類時(shí),開(kāi)發(fā)程序不允許,報(bào)錯(cuò)。這樣就要用到接口。因?yàn)榻涌谠试S多重繼承(,),而類不允許。所以就要用到接口。
由于漢語(yǔ)語(yǔ)言表述的所帶來(lái)的不易理解性,我們還是直接用代碼來(lái)解釋吧,如下的代碼片段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static class StringExtentsion
{
public static string ToString(this string str)
{
return "Extentsion" + str;
}
}
class Program
{
static void Main(string[] args)
{
string str = "test";
Console.WriteLine(str.ToString()); // 輸出結(jié)果為: test,也就說(shuō)編譯器會(huì)優(yōu)先選用原有類的實(shí)例化方法,如果沒(méi)找到匹配方法再尋找擴(kuò)展方法
Console.Read();
}
}
由上述的代碼片段可以知:StringExtentsion類中擴(kuò)展方法ToString 和 String類的原有的ToString方法 對(duì)于客戶端代碼而言,它們的語(yǔ)法表象是
一樣的,但本質(zhì)上一個(gè)是StringExtentsion類的靜態(tài)方法,一個(gè)是String類的實(shí)例化方法。然而編譯運(yùn)行沒(méi)有產(chǎn)生錯(cuò)誤,更沒(méi)有產(chǎn)生警告。所以在
這種情況下很容“埋雷”,一不小心就會(huì)中招。有人也許會(huì)說(shuō):我注意一下不要和.NET類庫(kù)的方法重名就可以了。但是你能保證 .NET 6、甚至.NET 10
的方法名和你寫(xiě)的絕對(duì)不重名嗎?所以,擴(kuò)展方法存在著版本控制的問(wèn)題。
樓主您好,這個(gè)拓展方法是為L(zhǎng)inQ服務(wù)的,用來(lái)在集合內(nèi)篩選數(shù)據(jù)
比如有一個(gè)List(Of Integer)
類型的scoreList對(duì)象,里面存有學(xué)生的考試成績(jī)。如果我要輸出
大于等于60分的成績(jī),可以這樣:
Dim r=(From s in scoreList Where s=60 Select s).ToList()
For Each e In r
Console.WriteLine(e)
Next
第一句實(shí)際編譯為對(duì)集合的Where等拓展方法的調(diào)用