亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

PHP的一些常用問題解答

時(shí)間:2020-10-15 13:05:31 PHP 我要投稿

有關(guān)PHP的一些常用問題解答

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

  Q:PHP中的類可以有構(gòu)造函數(shù)么?

  A:可以,只要函數(shù)名和類名相同,這個(gè)函數(shù)將成為構(gòu)造函數(shù)。在使用 new 操作符來創(chuàng)建一個(gè)類的實(shí)例時(shí),該構(gòu)造函數(shù)將會(huì)自動(dòng)調(diào)用,因此,可以把一些初始化工作放在構(gòu)造函數(shù)里完成。

  Q:PHP中的類有析構(gòu)函數(shù)么?

  A:沒有。當(dāng)對象被銷毀,使用 unset() 或者簡單的脫離范圍,析構(gòu)函數(shù)都會(huì)自動(dòng)調(diào)用。但 PHP 中沒有析構(gòu)函數(shù)。 如:

  unset($foo);

  就銷毀一個(gè)類對象$foo了。

  Q:要如何繼承一個(gè)類?

  A:使用關(guān)鍵字 extends 來繼承一個(gè)類,如:

  class B extents A {

  }

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

  A:使用 $this 來引用當(dāng)前類自身,如:

  $this->name = "Tom";

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

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

  A::example();

  一種是用 parent 關(guān)鍵字,如:

  parent::example();

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

  Q:我不想創(chuàng)建類的實(shí)例,能直接使用類中的函數(shù)或變量嗎?

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

  B::example();

  就可以執(zhí)行B類中的函數(shù)example(),而并沒有創(chuàng)建任何B類的對象,僅僅是作為一個(gè)類函數(shù)來調(diào)用,這對于功能模塊歸納組織很有好處。

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

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

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

  A:

  方法有一:

  因?yàn)樘砑佑脩,所以你運(yùn)行PHP程序的用戶必須是管理員權(quán)限(Administrator),并且同時(shí)需要你的php.ini中的安全模式?jīng)]有打開,并且關(guān)閉函數(shù)中沒有關(guān)閉system()、exec()、passthru()等函數(shù)。

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

  一、使用IIS做Web服務(wù)器

  如果是使用IIS做服務(wù)器的話,那么運(yùn)行PHP的帳戶就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服務(wù)器的計(jì)算機(jī)名),那么你必須把這兩個(gè)用戶加到管理員組:Administrators 。當(dāng)然,你這樣做的話,會(huì)給服務(wù)器安全帶來威脅。

  二、使用Apache作為Web服務(wù)器

  據(jù)了解,Apache安裝成服務(wù)以后,那么就是以system權(quán)限運(yùn)行的,那么就是說PHP運(yùn)行的話,直接就是系統(tǒng)權(quán)限,已經(jīng)超過了管理員權(quán)限,那么執(zhí)行命令更不再話下。如果你修改了Apache的運(yùn)行用戶,那么你必須指定Apache服務(wù)運(yùn)行用戶是管理員以上權(quán)限,比如Administor或者system權(quán)限。

  然后你就可以在你的PHP代碼中執(zhí)行添加用戶操作了:

  描述如下代碼:

  

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

  define("ACTIVE", "YES"); //是否創(chuàng)建后直接激活用戶,YES為激活,NO為不激活

  //從數(shù)據(jù)庫提取用戶名和密碼

  //假設(shè)表為user_info,并且只有字段id, user, passwod

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

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

  //循環(huán)插入用戶

  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");

  }

  ?>

  以上代碼實(shí)現(xiàn)了把你所有數(shù)據(jù)庫的用戶添加到本地系統(tǒng),如果你想單個(gè)的添加,可以考慮更改成用戶注冊成功后就添加用戶,這個(gè)可以自己擴(kuò)展。

  不過,此方法不能實(shí)現(xiàn)同步

  方法二:

  可以在服務(wù)器端利用php.exe來執(zhí)行,并且不會(huì)有安全問題。

  假設(shè)你的php安裝在c:\php\中,那么我們就使用命令提示符的來執(zhí)行php腳本來添加用戶。

  PHP代碼:

  //c:\test.php

  

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

  ?>

  保存在c:\test.php文件中

  在cmd下執(zhí)行:

  c:\php\php.exe c:\test.php

  提示:

  C:\>c:\php\php.exe c:\test.php

  命令成功完成。

  再將方法一中的那段代碼拿到這里來執(zhí)行,然后php.exe充當(dāng)shell腳本引擎。然后寫成批處理,通過定時(shí)任務(wù)來執(zhí)行。當(dāng)然,也可以考慮使用其他語言來實(shí)現(xiàn),比如vb/vc之類的,定期去數(shù)據(jù)庫中檢索是否有新添加的用戶,然后再把用戶添加到系統(tǒng)中。


【有關(guān)PHP的一些常用問題解答】相關(guān)文章:

一些PHP中類的常識(shí)11-21

PHP最短webshell的一些理解10-04

常用的PHP技術(shù)技巧11-22

最近總結(jié)的一些php信息函數(shù)11-16

關(guān)于php的常用運(yùn)行方式11-24

關(guān)于php常用的系統(tǒng)函數(shù)11-21

PHP常用的文件操作函數(shù)11-11

PHP常用的關(guān)鍵字12-19

PHP常用MySql操作介紹11-24