我试图创建一个静态方法,它将返回类的实例,如:
class A {
public static A getInstance() {
return new A();
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,如果我有一个派生自A的子类B,我希望B.getInstance()返回B的实例,而不是A.在PHP世界中,你可以使用关键字"self"来引用到你自己的类型,所以你的getInstance()看起来像:
public static function getInstance() {
return new self();
}
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我正在观察一个有趣的make行为,我想知道除了gmake中的一个bug之外是否还有合理的解释.
假设我们在makefile中有以下内容:
%-animal:
echo "$* is an animal"
%-fox: %-fox-animal
%-wolf: %-wolf-animal
Run Code Online (Sandbox Code Playgroud)
最后两个目标之间的差异是"%-wolf"没有任何配方,"%-fox"有一个空配方(即只有一行开头有一个标签).
当我们尝试执行规则时,会发生以下情况:
[root@cv19 tmp]# make freddy-animal
echo "freddy is an animal"
freddy is an animal
[root@cv19 tmp]# make freddy-wolf
make: *** No rule to make target `freddy-wolf'. Stop.
[root@cv19 tmp]# make freddy-fox
echo "freddy-fox is an animal"
freddy-fox is an animal
Run Code Online (Sandbox Code Playgroud)
iethe模式规则有一个配方(虽然是空的)工作,那个没有.我错过了它应该工作的方式吗?
假设我们有一个自定义PHP扩展,如:
PHP_RSHUTDOWN_FUNCTION(myextension)
{
// How do I call myfunction() from here?
return SUCCESS;
}
PHP_FUNCTION(myfunction)
{
// Do something here
...
RETURN_NULL;
}
Run Code Online (Sandbox Code Playgroud)
如何从RSHUTDOWN处理程序调用myfunction()?
我试图找出与.NET中的SystemInformation.CaptionHeight等效的Win32 API(MFC).到目前为止,我查看了SystemParametersInfo()(http://msdn.microsoft.com/en-us/library/ms724947%28v=VS.85%29.aspx),它似乎不适合该法案.