关于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()这样的方式在子类中调用,但还是尽量不要这样写为好,静态方法是静态方法
,非静态为非静态,以免惹上不必要的麻烦,错误还不好找
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()这样的方式在子类中调用,但还是尽量不要这样写为好,静态方法是静态方法
,非静态为非静态,以免惹上不必要的麻烦,错误还不好找
相关文章推荐
- php 在类中使用静态方法的几种方式
- php中在类中使用静态方法的几种方式
- 关于静态方法的使用方式
- 关于PHP面向对象编程中使用范围解析操作符访问非静态方法的注意事项
- 关于php-fpm方式和apache配合使用的几点记录
- php静态方法使用小结
- php面向对象中的单例与静态方法的对比,以及关于class自动加载的分析
- PHP中静态方法(static)与非静态方法的使用及区别
- php中static静态关键字的使用方法和应用场景
- 关于如何判断网页是静态还是伪静态的方法——本文来自雅致生活网『www.yzsh0514.com』原帖地址:http://www.yzsh0514.com/bbs/viewthread.php?tid==0
- 一个关于php使用pdo方式进行数据库连接和处理的类
- 关于使用php连接sql server的方法
- spring注入的方式实现静态方法中使用非静态变量
- PHP中静态方法(static)与非静态方法的使用及区别
- php静态方法及静态属性的使用及定义
- 关于PHP静态方法调用和实例化类调用的区别
- php开发过程中关于继承的使用方法
- 关于php中类的静态变量和静态方法
- PHP中,如果想使用静态调用函数又不想把类的方法写成静态
- 静态类和 关于什么时候使用“静态方法”