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

xiachao2008 2011-12-14 10:02:58
我怎么写一个方法,让他返回是一个对象??
...全文
215 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
有人吗

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧