PHP中的stdClass
如果所有的Class都应该存在于一个默认的层级中的话,那么最顶层应该是最为一般的Class,也就是说极为抽象的,每一个下层的Class均比其上层
的Class(即父类)更加专门化。基于该思想,在PHP中,这个顶层的Class被命名为“stdClass”,且作为一个“Standard
Class”,你可以把它看成是一个不含任何属性和方法的类。
使用stdClass的目的: 在运行时添加属性到基对象(Base Object)
问题
你想创建一个对象,并在其中添加一些属性,但是你却不想把它作为一个明确的类正式地定义它。这一点在一些情况下是相当有用的,例如当你需要定义一个方法来
返回带有某些属性(不确定的)的对象时,就如同从mysql_fetch_object( ) 或者 imap_header( )的使用一样。
解决方案
使用PHP内建类,stdClass:
$pickle
=
new
stdClass;
$pickle
->type =
'fullsour'
;
讨论
创建一个stdClass类型的对象,其不含有任何属性和方法,就像array( )返回一个空数组一样。
你可以为其创建一个新的属性并分配给它某个值,然后检查它的值。
$guss
=
new
stdClass;
$guss
->location =
'Essex'
;
print
"$guss->location\n"
;
$guss
->location =
'Orchard'
;
print
"$guss->location\n"
;
方法,无论如何在一个对象被初始化之后再去定义它。但是在你想使用一个像从数据库结果集中提取出来的对象(mysql_fetch_object方法,毕竟在调用它是你并不像真正地去请求数据库)这样的一般对象时,创建 stdClass 对象是非常有用的。如下:
function
pc_format_address(
$obj
) {
return
"$obj->name <$obj->email>"
;
}
$sql
=
"SELECT name, email from users WHERE id=$id"
;
$dbh
= mysql_query(
$sql
);
$obj
= mysql_fetch_object(
$dbh
);
print pc_format_address(
$obj
);
pc_format_address方法使用一个对象的name 和 email 属性,然后使其格式化后返回(如上代码)。下面我们不调用mysql_fetch_object方法,应该如何使用呢?
$obj
=
new
stdClass;
相关文档:
如何创建我们的第一个PHP页面呢?非常简单的!选择我们使用的一个最好的设计工具,当然你也可以 只使用记事本。创建之后记得要保存为扩展名为PHP的文件,然后传到我们的服务器
上。
在编写PHP程序之前通常我们需要配置我们的环境,也就是说服务器
要支持PHP才能行啊
一、PHP的基本结构:
使用Incl ......
PHP是个伟大的web开发语言,灵活的语言,但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表,列出了PHP程序员经常犯的10中错误,大多数和安全相关。看看你犯了几种
1.不转意html entities
一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转意。
echo $ ......
1、安装libeven
memcached的使用需要libeven的支持,我们得先装上libeven。
官方网站:http://www.monkey.org/~provos/libevent/
libevent安装方式比较简单:
./configure && make
make install
检查是否 已经安装
ls -l /usr/local/lib/ | grep even
2、安装memcached
官方网站:http://ww ......
1.直接使用mysql_insert_id()获取上一次插入的数据的AUTO_INCREMENT的变量的编号,比使用mysql语句获取方便极多。但注意要在query()后立刻使用,保证时间正确性,如多线程访问数据库是产生误差。
2.等号左右各留一空格,清晰便于阅读。
3.PHP中,单双引号均可以套string,区别在于:
"this is a simple $test" = 'this i ......