关于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++;
}
}
这时已经被分配了内存了呢?
相关文档:
1、分别安装三个环境,并设置不同端口
PHP:80
JSP:8080
ASP:8081
2、设置/Apache2/conf/httpd.conf
去掉以下三行前的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
加入以下几行: ......
这是我最近几天的学习心得,与大家共享。
1,一般情况下我们用记事本写一个简单的PHP页面,放在Apache服务器安装目录下的htdocs目录下,即可访问。
这时,在httpd.conf文件中对应的服务器根目录配置为:DocumentRoot "D:/Apache Software Foundation/Apache2.2/htdocs"
目录配置为:<Directory "D:/Apache Software F ......
function checkFileType($fileName){
$file = fopen($fileName, "rb");
$bin = fread($file, 2); //只读2字节
&n ......
之前写的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), ......
继承特性简化了对象,类的创建,增加了代码的重用性。但是PHP之支持单继承。如果想实现多继承的话就要用到PHP的借口。PHP可是实现多个接口。
不要用public以外的关键字来修饰接口中的类成员。对于方法,不写关键字也可以。这是一个借口类自身的天性决定的。那么我想他是为什么呢?
对于接口来说,它不能用protected,和pr ......