+ -
当前位置:首页 → 问答吧 → 我怎么写一个方法,让他返回的值是一个对象

我怎么写一个方法,让他返回的值是一个对象

时间:2011-12-14

来源:互联网

我怎么写一个方法,让他返回是一个对象??

作者: xiachao2008   发布时间: 2011-12-14

有人吗

作者: xiachao2008   发布时间: 2011-12-14

直接return就行

作者: liyuef123   发布时间: 2011-12-14

PHP code
class myObject{
    // ......
}

function returnObject(){
    $mo = new $myObject();
    return $mo;
}

作者: CunningBoy   发布时间: 2011-12-14

3楼那个正确
如果是一个类中的成员函数的话,返回伪变量$this就是返回一个对象(它本身)

作者: Darkwinoom   发布时间: 2011-12-14

该回复于2011-12-14 10:45:08被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#6楼 得分:0回复于:2011-12-14 11:15:38
可以在详细一点吗
有一点没有理解透。
引用 3 楼 cunningboy 的回复:

PHP code
class myObject{
// ......
}

function returnObject(){
$mo = new $myObject();
return $mo;
}

作者: helloyou0   发布时间: 2011-12-14

returnObject里就new 实例化myObject类。并返回。有什么不理解的?



引用 6 楼 xiachao2008 的回复:

可以在详细一点吗
有一点没有理解透。
引用 3 楼 cunningboy 的回复:

PHP code
class myObject{
// ......
}

function returnObject(){
$mo = new $myObject();
return $mo;
}

作者: xiachao2008   发布时间: 2011-12-14

是这样的。我执行了一个方法,方法本来是返回string类型的数据
而这个数据在其它地方也用得到,所以我想返回一个对象。这样在用的时候,我就可以这样写成类拟这样的写法

$a->$b()->$c()

只是觉得这样写起来更简洁。所以才有这样的问题。
引用 6 楼 xiachao2008 的回复:

可以在详细一点吗
有一点没有理解透。
引用 3 楼 cunningboy 的回复:

PHP code
class myObject{
// ......
}

function returnObject(){
$mo = new $myObject();
return $mo;
}

作者: ci1699   发布时间: 2011-12-14

C# code

class MyClass
{
  ......
}

public MyClass ReturnObject(MyClass myClass)
{
  MyClass a=new MyClass();
  if (null != myClass)
  {
  a=myClass; 
  }
  return a;
}

作者: xiachao2008   发布时间: 2011-12-14

见4楼


引用 8 楼 xiachao2008 的回复:

是这样的。我执行了一个方法,方法本来是返回string类型的数据
而这个数据在其它地方也用得到,所以我想返回一个对象。这样在用的时候,我就可以这样写成类拟这样的写法

$a->$b()->$c()

只是觉得这样写起来更简洁。所以才有这样的问题。引用 6 楼 xiachao2008 的回复:

可以在详细一点吗
有一点没有理解透。
引用 3 楼 cunningboy 的回复:
……

作者: jglie   发布时间: 2011-12-14

我这样改了一下,不行给

class myObject{

  public function a($a){

  return $this->$a;
  }

public function b($b){

echo $b;
}
}
$c=new myObject();

$c->a('1aaaaa')->b();

引用 10 楼 helloyou0 的回复:

见4楼


引用 8 楼 xiachao2008 的回复:

是这样的。我执行了一个方法,方法本来是返回string类型的数据
而这个数据在其它地方也用得到,所以我想返回一个对象。这样在用的时候,我就可以这样写成类拟这样的写法

$a->$b()->$c()

只是觉得这样写起来更简洁。所以才有这样的问题。引用 6 楼 xiachao2008 的回复:

可以在详细一点吗……

作者: helloyou0   发布时间: 2011-12-14

class myObject{

  public function a($a){

  return $this->$a;
  }

public function b($b){

echo $b;
}
}
$c=new myObject();

$c->a('1aaaaa')->b();

为什么不行呢,没有输出??
引用 10 楼 helloyou0 的回复:

见4楼


引用 8 楼 xiachao2008 的回复:

是这样的。我执行了一个方法,方法本来是返回string类型的数据
而这个数据在其它地方也用得到,所以我想返回一个对象。这样在用的时候,我就可以这样写成类拟这样的写法

$a->$b()->$c()

只是觉得这样写起来更简洁。所以才有这样的问题。引用 6 楼 xiachao2008 的回复:

可以在详细一点吗……

作者: xiachao2008   发布时间: 2011-12-14

return $this->$a;

这个$this->$a是个什么东东?

妹子,你的基本功不扎实啊

作者: xiachao2008   发布时间: 2011-12-14

代表返回字符串的对象啊
引用 13 楼 helloyou0 的回复:

return $this->$a;

这个$this->$a是个什么东东?

妹子,你的基本功不扎实啊

作者: helloyou0   发布时间: 2011-12-14

引用 12 楼 xiachao2008 的回复:

class myObject{

public function a($a){

return $this->$a;
}

public function b($b){

echo $b;
}
}
$c=new myObject();

$c->a('1aaaaa')->b();

为什么不行呢,没有输出??引用 10 楼 helloyou0……

如果你想要这样写的话方法a与方法b必须返回的是一个对象(通俗的说就是伪变量$this)
将你这个类稍微改造了一下,你看看是不是你想要的
class myObject{

public function a($a){
$this->arr[] = $a;
return $this;
}

public function b(){
return $this->arr;
}
}
$c=new myObject();
$arr = $c->a('1aaaaa')->a('2aaaaaa')->b();
var_dump($arr);

作者: xiachao2008   发布时间: 2011-12-14

修正一下
例子中的b方法不用返回对象,因为他是作为终结
例子里如果b方法后再跟一个a方法的话就会出错

作者: Darkwinoom   发布时间: 2011-12-14

翻了30秒居然没找到合适的例子,
只好亲自动手了

class 人 {
  private $name='';
  private $肚子=array();

  public function __construct($name){
  $this->name=$name;
  }

  public function 吃($好吃的){
  $this->肚子[]=$好吃的;
  return $this;
  }

  public function 吐(){
  $东东=array_pop($this->肚子);
  if(!empty($东东)){
  echo $this->name.'吐了'.$this->东东."\n";
  }
  return $this;
  }

}

$我=new 人('helloyou0');
$我->吃('青菜')->吐()->吃('鸡')->吃('鸭')->吐()->吐();


作者: Darkwinoom   发布时间: 2011-12-14

你是不是要这样子?


<?php


class laaaaa{
public $b;
public function b($b){
$this -> b = $b;
echo $this -> b;
}
}

class myObject{

  public $laaaaa;

  public function a($a){

  return $this->$a = new $a();
  }


}
$c=new myObject();


$c->a('laaaaa')->b('=_=');

?>


引用 14 楼 xiachao2008 的回复:

代表返回字符串的对象啊引用 13 楼 helloyou0 的回复:

return $this->$a;

这个$this->$a是个什么东东?

妹子,你的基本功不扎实啊

作者: helloyou0   发布时间: 2011-12-14