荟萃馆

位置:首页 > 设计 > 网页设计

有关PHP的一些常用问题解答

今天,小编把一些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之类的,定期去数据库中检索是否有新添加的用户,然后再把用户添加到系统中。


标签:问题解答 PHP