既然可以直接用类名调用类中的方法和属性,那还声明对象干嘛? 这不是多此一举吗? class One
{
var $a;
var $b; function get()
{
echo 'hello';
}
}
$one = new One();
$one->get();
echo '<br>-----------------<br>';
One::get();//这么一条语句可以代替$one = new One();$one->get();两条。???
{
var $a;
var $b; function get()
{
echo 'hello';
}
}
$one = new One();
$one->get();
echo '<br>-----------------<br>';
One::get();//这么一条语句可以代替$one = new One();$one->get();两条。???
var $a='hello';
var $b;
function get() {
echo $this->a;
}
} $one = new One();
$one->get();
echo '<br>-----------------<br>';
One::get();//这么一条语句可以代替$one = new One();$one->get();两条。???
至于第二个请看这里:PHP中::、->、self、$this操作符的区别
直接用类名字访问的话是静态类,就是说只要类的文件被引入,这块内存空间就存在
这样举例:class One {
public $a='hello'; //Public 修饰的变量可以在对象外部被修改 function get() {
echo $this->a;
}
} $one1 = new One();
$one2 = new One();
echo($one1->get());
echo($one2->get());echo('----------');
$one1->a = 'world';
echo($one1->get()); //改变了
echo($one2->get()); //没变echo('===============');
//echo(One::get()); //报错 没有new过的类是不能在函数里面调用$this的
echo(One::$a);
One::$a = 'world';
echo(One::$a);