Php 类定义为另一个类的静态成员
我一直在用Java做这类事情,我试图弄清楚这在PHP中是否可行。如果可能的话,这就是我希望语法看起来的样子,但是我想知道是否有一些特殊的方法来实现它(如果可能的话,就是这样)Php 类定义为另一个类的静态成员,php,class,member,Php,Class,Member,我一直在用Java做这类事情,我试图弄清楚这在PHP中是否可行。如果可能的话,这就是我希望语法看起来的样子,但是我想知道是否有一些特殊的方法来实现它(如果可能的话,就是这样) 不,这是不可能的 但是,您可以使用名称空间实现类似的效果。在PHP中无法实现,但在PHP5.3中,您可以使用名称空间实现类似的功能 不,你不能。然而,PHP5.3中引入的是。使用名称空间,您可以类似地执行以下操作: <?php namespace MyNamespace { use Exception;
不,这是不可能的
但是,您可以使用名称空间实现类似的效果。在PHP中无法实现,但在PHP5.3中,您可以使用名称空间实现类似的功能
不,你不能。然而,PHP5.3中引入的是。使用名称空间,您可以类似地执行以下操作:
<?php
namespace MyNamespace
{
use Exception;
class FooBarException
extends Exception
{
}
class FooBazException
extends Exception
{
}
class Foo
{
public function doSomething()
{
throw new FooBarException;
}
}
}
namespace AnotherNamespace
{
$bang = new \MyNamespace\Foo;
try {
$bang->doSomething();
} catch(\MyNamespace\FooBarException $up) {
throw $up; // :)
}
}
顺便说一句,我忘了在任何语言中都有这样做的实际名称。我原以为它是“子类”,但那会被用作“FooberException是异常的子类”…除了你的话,我想你在寻找“内部类”,这里有一个类似问题的链接:简短的回答是“不”,它也被称为“嵌套类”。@watcher和linepogl-谢谢,这就是为什么我找不到重复的。“成员类”在搜索中一直被视为“类成员”…令人失望,但+1和接受,因为我甚至不知道名称空间。
<?php
namespace MyNamespace
{
use Exception;
class FooBarException
extends Exception
{
}
class FooBazException
extends Exception
{
}
class Foo
{
public function doSomething()
{
throw new FooBarException;
}
}
}
namespace AnotherNamespace
{
$bang = new \MyNamespace\Foo;
try {
$bang->doSomething();
} catch(\MyNamespace\FooBarException $up) {
throw $up; // :)
}
}