您的位置:首页 > 编程语言 > PHP开发

关于php 当中静态方法 的使用方式

2012-10-27 01:58 357 查看
<?php

class B {

public static $class2;

public function __construct()

{

self::$class2 = Test::getInstance();

}

public static function ttss()

{

return self::$class2->hello();

}

}

class Test {

protected $s;

protected static $_instance = null;

public function __construct(){

echo $this->s = 'good,job';

}

public function hello()

{

echo $this->s;

echo "<br>",'哈哈!!';

}

/**

* 单例模式实例化本类

*

* @access public

* @return object

*/

public static function getInstance() {

if (self::$_instance === null) {

self::$_instance = new self();

}

return self::$_instance;

}

}

$c = new B;

$c->ttss(); //ttss()方法 是静态的但是他可以用这种方式访问牛吧,哈哈。在ttss方法内再用->调用Test类中的hello方法,但如果方法hello也改成

public static function hello()

{

echo $this->s;

echo "<br>",'哈哈!!';

}这样的,在ttss方法中就不能再如果调用了这时他会报一个错


“Fatal error: Using $this when not in object context”可见虽然声明了public static function tt()的方式可以用$this->tt()这样的方式在子类中调用,但还是尽量不要这样写为好,静态方法是静态方法
,非静态为非静态,以免惹上不必要的麻烦,错误还不好找

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: