Php 一个对象可以包含另一个相同类型的对象吗?
我阅读了一些其他语言的问题和答案,但没有看到任何专门针对PHP的问题和答案 以下内容在PHP中有效吗Php 一个对象可以包含另一个相同类型的对象吗?,php,Php,我阅读了一些其他语言的问题和答案,但没有看到任何专门针对PHP的问题和答案 以下内容在PHP中有效吗 class foo { // constructor, etc.. public function bar() { $newFoo = new foo(); // do something } } 是的,这是有效的,只要你不在构造函数中创建相同类型的对象。是的,这是有效的,只要你不在构造函数中创建相同类型的对象。是的,这是有效
class foo
{
// constructor, etc..
public function bar()
{
$newFoo = new foo();
// do something
}
}
是的,这是有效的,只要你不在构造函数中创建相同类型的对象。是的,这是有效的,只要你不在构造函数中创建相同类型的对象。是的,这是有效的。可以创建嵌套的对象集。尽管在构造函数中这样做会导致无限递归 额外的!您甚至可以将对象链接到其自身
$this->myself = $this;
它将链接到同一个对象。是的,它将是有效的。可以创建嵌套的对象集。尽管在构造函数中这样做会导致无限递归 额外的!您甚至可以将对象链接到其自身
$this->myself = $this;
它会链接到同一个对象。没有什么可以阻止它。没有什么可以阻止它。简短回答:是的,它有效 几乎可以在php代码的任何位置实例化对象。类内部的方法并没有什么不同,但如果它是不同的类,则必须确保首先包含类文件,例如
<?php
require_once './foo.class.php';
class bar{
//class stuff
public doThingsWithFoo(){
$foo = new foo();
}
}
?>
但是,在同一类的方法中使用同一对象的另一个实例,除了可能的常识之外,没有什么别的,就像您正在做的那样:
class foo
{
// constructor, etc..
public function bar()
{
$newFoo = new foo();
// do something with this instance of foo that you cannot do using $this
}
}
我希望这有帮助。干杯简短回答:是的,它有效 几乎可以在php代码的任何位置实例化对象。类内部的方法并没有什么不同,但如果它是不同的类,则必须确保首先包含类文件,例如
<?php
require_once './foo.class.php';
class bar{
//class stuff
public doThingsWithFoo(){
$foo = new foo();
}
}
?>
但是,在同一类的方法中使用同一对象的另一个实例,除了可能的常识之外,没有什么别的,就像您正在做的那样:
class foo
{
// constructor, etc..
public function bar()
{
$newFoo = new foo();
// do something with this instance of foo that you cannot do using $this
}
}
我希望这有帮助。干杯了解PHP中某些内容是否有效的最佳方法是在头文件中使用此函数:
<?php
error_reporting(E_ALL|E_NOTICE);
?>
甚至PHP也会报告失败,例如不使用isset
其他做法:
始终使用$\u GET、$\u POST而不是全局
不要使用此:$\u GET[test]这是最好的$\u GET['test']
始终阅读PHP文档以查看函数是否正确
不推荐的文档:
注意:您的构造函数是有效的。了解PHP中某些内容是否有效的最佳方法是在头文件中使用此函数:
<?php
error_reporting(E_ALL|E_NOTICE);
?>
甚至PHP也会报告失败,例如不使用isset
其他做法:
始终使用$\u GET、$\u POST而不是全局
不要使用此:$\u GET[test]这是最好的$\u GET['test']
始终阅读PHP文档以查看函数是否正确
不推荐的文档:
注意:您的构造函数是有效的。以下内容在PHP中有效吗?你试过了吗?StackOverflow不是你的编译器。试一下,看看是否有效。同意他尝试,但问题是,即使有效,这是正确的做法吗?“我想一个新来的人会问一个公平的问题吗?”蒂姆库珀-我想我的问题措辞很糟糕。根据我有限的经验,事情往往在不应该的时候起作用。我已经用PHP和Javascript做了很多次不该做的事情,后来我才知道我不该这么做。除了询问我所做的在语法上是否正确,我还想看看这是否被认为是一种可接受的做法。谢谢你的否决票。@TimCooper-哦,顺便说一句,我确实试过了:效果很好。注意,我没有问它是否有效,而是问它是否有效?你试过了吗?StackOverflow不是你的编译器。试一下,看看是否有效。同意他尝试,但问题是,即使有效,这是正确的做法吗?“我想一个新来的人会问一个公平的问题吗?”蒂姆库珀-我想我的问题措辞很糟糕。根据我有限的经验,事情往往在不应该的时候起作用。我已经用PHP和Javascript做了很多次不该做的事情,后来我才知道我不该这么做。除了询问我所做的在语法上是否正确,我还想看看这是否被认为是一种可接受的做法。谢谢你的否决票。@TimCooper-哦,顺便说一句,我确实试过了:效果很好。注意,我没有问它是否有效,我问它是否有效。。没有道理。你能把“时间”改成“类型”吗。。一个输入错误,仍然没有意义?如果你在构造函数中创建相同的类,它将导致一个递归循环。。没有道理。你能把“时间”改成“类型”吗。。输入错误,仍然没有意义?如果你在构造函数中创建相同的类,它将导致递归循环…抱歉,这是拼写检查器的错误现在修复我编辑了我的答案抱歉,这是拼写检查器的错误现在修复我编辑了我的答案