當前位置:學問君>人在職場>電腦培訓>

有關PHP的一些常用問題解答

學問君 人氣:2.69W

今天,小編把一些PHP中一些常用的知識點整理出來,讓新手們更容易掌握PHP,以便能快速看懂那些較難的程序,希望讀者們補充一下或者修正其中錯誤理解。

有關PHP的一些常用問題解答

Q:PHP中的類可以有構造函數麼?

A:可以,只要函數名和類名相同,這個函數將成爲構造函數。在使用 new 操作符來創建一個類的實例時,該構造函數將會自動調用,因此,可以把一些初始化工作放在構造函數裏完成。

Q:PHP中的類有析構函數麼?

A:沒有。當對象被銷燬,使用 unset() 或者簡單的脫離範圍,析構函數都會自動調用。但 PHP 中沒有析構函數。 如:

unset($foo);

就銷燬一個類對象$foo了。

Q:要如何繼承一個類?

A:使用關鍵字 extends 來繼承一個類,如:

class B extents A {

}

Q:在類的定義中如何引用自身?

A:使用 $this 來引用當前類自身,如:

$this->name = "Tom";

Q:在子類中如何使用父類?

A:使用 :: 操作符,且有兩種方式,一種是直接用父類名,如:

A::example();

一種是用 parent 關鍵字,如:

parent::example();

建議採用 parent:: 來引用父類。

Q:我不想創建類的實例,能直接使用類中的函數或變量嗎?

A:可以,採用 :: 操作符,如:

B::example();

就可以執行B類中的函數example(),而並沒有創建任何B類的對象,僅僅是作爲一個類函數來調用,這對於功能模組歸納組織很有好處。

Q:PHP有多重繼承麼?//added by erquan

A:沒有。子類不能同時從兩個父類繼承,即一個孩子不能同時有兩個爸爸:)。子類必須依賴於一個且必須已存在的基類。

Q:如何使用PHP往windows中添加用戶?

A:

方法有一:

因爲添加用戶,所以你執行PHP程序的用戶必須是管理員權限(Administrator),並且同時需要你的中的安全模式沒有開啟,並且關閉函數中沒有關閉system()、exec()、passthru()等函數。

( 以下說明針對Windows2000/Windows XP/Windows 2003 )

一、使用IIS做Web服務

如果是使用IIS做服務器的話,那麼執行PHP的帳戶就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服務器的計算機名),那麼你必須把這兩個用戶加到管理員組:Administrators 。當然,你這樣做的話,會給服務器安全帶來威脅。

二、使用Apache作爲Web服務器

據瞭解,Apache安裝成服務以後,那麼就是以system權限執行的,那麼就是說PHP執行的話,直接就是系統權限,已經超過了管理員權限,那麼執行命令更不再話下。如果你修改了Apache的執行用戶,那麼你必須指定Apache服務執行用戶是管理員以上權限,比如Administor或者system權限。

然後你就可以在你的PHP代碼中執行添加用戶操作了:

描述如下代碼:

define("USER_GROUP", "users"); //用戶組,默認爲users,爲了安全,定義還是的.用戶組

define("ACTIVE", "YES"); //是否創建後直接激活用戶,YES爲激活,NO爲不激活

//從數據庫提取用戶名和密碼

//假設表爲user_info,並且只有字段id, user, passwod

$sql = "SELECT user,password FROM user_info";

$result = mysql_query($sql) or die("Query database failed");

//循環插入用戶

while ($array = mysql_fetch_array($result)) {

if (!function_exists("system"))

die('Function system() not exists, add user failed.');

//添加用戶

@system("net user $array[user] $array[passwd] /active:ACTIVE /add");

//添加到指定組

@system("net localgroup users $array[user] /del");

@system("net localgroup USER_GROUP $array[user] /add");

}

?>

以上代碼實現了把你所有數據庫的用戶添加到本地系統,如果你想單個的添加,可以考慮更改成用戶註冊成功後就添加用戶,這個可以自己擴展。

不過,此方法不能實現同步

方法二:

可以在服務器端利用來執行,並且不會有安全問題。

假設你的php安裝在c:php中,那麼我們就使用命令提示符的來執行php腳本來添加用戶。

PHP代碼:

//c:

@system("net user test test /add");

?>

儲存在c:檔案中

在cmd下執行:

c:php c:

提示:

C:>c:php c:

命令成功完成。

再將方法一中的那段代碼拿到這裏來執行,然後充當shell腳本引擎。然後寫成批處理,透過定時任務來執行。當然,也可以考慮使用其他語言來實現,比如vb/vc之類的,定期去數據庫中檢索是否有新添加的用戶,然後再把用戶添加到系統中。