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

xiachao2008 2011-12-14 10:02:58
我怎么写一个方法,让他返回是一个对象??
...全文
171 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ci1699 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('=_=');

?>


[Quote=引用 14 楼 xiachao2008 的回复:]

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

return $this->$a;

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

妹子,你的基本功不扎实啊
[/Quote]
回复
helloyou0 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
修正一下
例子中的b方法不用返回对象,因为他是作为终结
例子里如果b方法后再跟一个a方法的话就会出错
回复
Darkwinoom 2011-12-14
[Quote=引用 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……
[/Quote]
如果你想要这样写的话方法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
代表返回字符串的对象啊[Quote=引用 13 楼 helloyou0 的回复:]

return $this->$a;

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

妹子,你的基本功不扎实啊
[/Quote]
回复
helloyou0 2011-12-14
return $this->$a;

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

妹子,你的基本功不扎实啊
回复
xiachao2008 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();

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

见4楼


引用 8 楼 xiachao2008 的回复:

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

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

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

可以在详细一点吗……
[/Quote]
回复
xiachao2008 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();

[Quote=引用 10 楼 helloyou0 的回复:]

见4楼


引用 8 楼 xiachao2008 的回复:

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

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

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

可以在详细一点吗……
[/Quote]
回复
helloyou0 2011-12-14
见4楼


[Quote=引用 8 楼 xiachao2008 的回复:]

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

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

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

可以在详细一点吗
有一点没有理解透。
引用 3 楼 cunningboy 的回复:
……
[/Quote]
回复
jglie 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
是这样的。我执行了一个方法,方法本来是返回string类型的数据
而这个数据在其它地方也用得到,所以我想返回一个对象。这样在用的时候,我就可以这样写成类拟这样的写法

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

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

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

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

function returnObject(){
$mo = new $myObject();
return $mo;
}
[/Quote]
回复
ci1699 2011-12-14
returnObject里就new 实例化myObject类。并返回。有什么不理解的?



[Quote=引用 6 楼 xiachao2008 的回复:]

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

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

function returnObject(){
$mo = new $myObject();
return $mo;
}
[/Quote]
回复
xiachao2008 2011-12-14
可以在详细一点吗
有一点没有理解透。
[Quote=引用 3 楼 cunningboy 的回复:]

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

function returnObject(){
$mo = new $myObject();
return $mo;
}
[/Quote]
回复
Darkwinoom 2011-12-14
3楼那个正确
如果是一个类中的成员函数的话,返回伪变量$this就是返回一个对象(它本身)
回复
CunningBoy 2011-12-14
class myObject{
// ......
}

function returnObject(){
$mo = new $myObject();
return $mo;
}
回复
liyuef123 2011-12-14
直接return就行
回复
xiachao2008 2011-12-14
有人吗
回复
相关推荐
发帖
Framework
创建于2008-08-27

4245

社区成员

国内外优秀PHP框架讨论学习
申请成为版主
帖子事件
创建了帖子
2011-12-14 10:02
社区公告
暂无公告