关于php面向对象的静态变量的问题
代码如下:
<?php
class Book{
static $num=0;
public function showme(){
echo '您是第'.self::$num.'位访客';
self::$num++;
}
}
$book1 = new Book();
$book1->showme();
echo"<br>";
$book2=new Book();
$book2->showme();
echo "<br>";
echo '您是第'.Book::$num.'位访客';
?>
结果是:
您是第0位访客
您是第1位访客
您是第2位访客
如果改掉static 变成 public 那么为什么会出现错误:Fatal error: Access to undeclared static property: Book::$num
虽然Book::$num是调用的类内部变量,可是如果我用了public不是哪都能访问的到么?
难道 Book::$num 必须是静态变量?
怎么回事?
静态变量不用实例化对象,当累第一次被加载时就已经分配了内存单元。
这句话,如果适应到这个程序的话,是不是class Book{
static $num=0;
public function showme(){
echo '您是第'.self::$num.'位访客';
self::$num++;
}
}
这时已经被分配了内存了呢?
相关文档:
<?php
/************************************************************
* 描述:HTTP操作类
* 作者:heiyeluren
* 创建:2009/12/13 04:43
* 修改:2009/12/16 10:30 实现基本HTTP各种接口操作支持
*
************************************************************/
/**
* HTTP功能工厂方法类
......
之前写的crud类实在比较简单(http://blog.csdn.net/yycai/archive/2009/12/15/5012353.aspx),重新封装了一下:
<?php
/**
* 自动化数据表操作类
* @example
* <code>
* $db = cls_crud::factory(array('table'=>'article'));
* $data = $db->get_block_list(array('category_id' => 3), ......
因为项目需要,所以自己写了一个CRUD类
虽然还比较简单,不过感觉很实用。
注:cls_database是一个数据库操作类
见:http://code.google.com/p/cyy0523xc/source/browse/trunk/php/cls_crud.php
<?php
/**
* 自动化数据表操作类
* @author 小蔡 <cyy0523xc@gmail.com>
* @version 1.0
*/
class cls_ ......
PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4)
所以存到数据库也有两种形式了(真正不止,我的应用就两种),时间戳类型我是保存为字符串的,这个是比较方便的.
正常日期类型是保存为DATE型的.
这两个要注意一下,我平时用两种,所以,前几天建的表,把时间类型存为DATE的,我还一直用时间戳保存 ......
最近工作范畴由原来的.net切换到了php,综合这段时间的认知,觉得在php这个体系中MVC模式未必是一个好东西。
从某种理论上来说,MVC确实可以让系统更清晰和更明了。
但是一个很重要的一点也存在了,MVC让页面更多了起来!!!这点很重要
PHP在没有一个比较好的IDE的支持下,页面跳转和切换实在是非常不方便。
没有一个好 ......