更多关于PHP OOP - 类中的类 [英] More About PHP OOP - Classes within Classes
问题描述
我被告知一个类不能在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:
再次感谢所有人。
您将返回
$ missing_variable
在几个地方。见下文。 (这不是唯一的方法,介意你) < ;?
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:
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)
<?
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屋!