更多关于PHP OOP - 类中的类 [英] More About PHP OOP - Classes within Classes

查看:86
本文介绍了更多关于PHP OOP - 类中的类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我被告知一个类不能在PHP中的类中定义。但是,在我自己的例子中,这似乎工作,我困惑:



class_test.php:

  require('class_1.php'); 
new class_1
//这里需要$ missing_variable。

class_1.php

  class class_1 {
public function function_1(){
function callback_function(){
echoA Callback;
$ missing_variable =我去哪儿?
}
require('class_2.php');
new class_2('callback_function');
}
public function __construct(){
$ this-> function_1();
}
}

class_2.php / p>

  class class_2 {
public function __construct($ callback){
echoHello World - ;
call_user_func($ callback);
}
}

加载class_test.php打印

  Hello World  - 回调

问题:如何定义 $ missing_variable ,以便我可以在需要的地方获取? / p>




如果将来有任何人有类似的问题,尽管这不太可能,我想链接到下面显示了来自类外部的$ missing_variable echo'd:



http://codepad.org/tRk0XWG7



再次感谢所有人。






注意:这是

您将返回 $ missing_variable 在几个地方。见下文。 (这不是唯一的方法,介意你)



http://codepad.org/tf08Vgdx

 < ;? 
class class_2 {
public function __construct($ callback){
echoHello World - ;
$ missing = $回调();
$ this-> missing = $ missing;
}
}
class class_1 {
public function function_1(){
function callback_function(){
echoA Callback。
$ missing_variable =我去哪儿?
return $ missing_variable;
}
$ class2 = new class_2('callback_function');
return $ class2-> missing;
}
public function __construct(){
$ this-> missing = $ this-> function_1();
}
}

$ class = new class_1();

echo $ class-> missing;


I have been told that a class cannot be defined within a class in PHP. However, in my own example this seems to work which has me confused:

class_test.php:

require('class_1.php');
new class_1
//Need $missing_variable here.

class_1.php

class class_1{
    public function function_1(){
        function callback_function(){
            echo "A Callback";
            $missing_variable = "Where Did I Go?";
        }
        require('class_2.php');
        new class_2('callback_function');
    }
    public function __construct(){
        $this->function_1();
    }
}

class_2.php

class class_2{
    public function __construct($callback){
        echo "Hello World - ";
        call_user_func($callback);
    }
}

Loading class_test.php prints out

Hello World - A Callback

Question: How do I define $missing_variable such that I can get it where I need it?


In case anyone in the future has a similar problem, however unlikely that may be, I want to link to the codepad from below that shows the $missing_variable echo'd from outside the classes:

http://codepad.org/tRk0XWG7

Thanks again everyone.


Note: This is a follow up.

解决方案

You would return $missing_variable in a few places. See below. (This isn't the only way to do it, mind you)

http://codepad.org/tf08Vgdx

<?
class class_2{
    public function __construct($callback){
        echo "Hello World - ";
        $missing = $callback();
        $this->missing = $missing;
    }
}
class class_1{
    public function function_1(){
        function callback_function(){
            echo "A Callback. ";
            $missing_variable = "Where Did I Go?";
            return $missing_variable;
        }
        $class2 = new class_2('callback_function');
        return $class2->missing;
    }
    public function __construct(){
        $this->missing = $this->function_1();
    }
}

$class = new class_1();

echo $class->missing;

这篇关于更多关于PHP OOP - 类中的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆