对象和资源

来源:互联网 发布:智慧社区服务平台软件 编辑:程序博客网 时间:2024/04/27 22:50

如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,内置类 stdClass 的一个实例将被建立。如果该值为 NULL,则新的实例为空。对于任何其它的值,名为 scalar 的成员变量将包含该值。一个资源是一个特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。
对象

对象初始化

要初始化一个对象,用 new 语句将对象实例到一个变量中。

<?php
class foo
{
function do_foo()
{
echo “Doing foo.”;
}
}

$bar = new foo;
$bar->do_foo();
?>

转换为对象

如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,内置类 stdClass 的一个实例将被建立。如果该值为 NULL,则新的实例为空。对于任何其它的值,名为 scalar 的成员变量将包含该值。

<?php
$obj = (object) ‘ciao’;
echo $obj->scalar; // outputs ‘ciao’
?>

资源

一个资源是一个特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。所有这些函数及其相应资源类型见附录。

注: 资源类型是 PHP 4 引进的。

转换为资源

由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,您无法将其它类型的值转换为资源。

释放资源

由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。由此原因,很少需要用某些 free-result 函数来手工释放内存。

注: 持久数据库连接比较特殊,它们不会被垃圾回收系统破坏。

原创粉丝点击