function parts($part) {
$structure = 'http://' . $site_url . 'content/';
echo($tructure . $part . '.php');
}
Run Code Online (Sandbox Code Playgroud)
此函数使用$site_url在此页面顶部定义的变量,但此变量未传递到函数中.
我们如何让它在函数中返回?
假设我在Java中有一个具有不可变数据的类Foo:
class Foo {
final private int x;
public int getX() { return this.x; }
final private OtherStuff otherstuff;
public Foo(int x, OtherStuff otherstuff) {
this.x = x;
this.otherstuff = otherstuff;
}
// lots of other stuff...
}
Run Code Online (Sandbox Code Playgroud)
现在我想添加一个实用程序方法,该方法创建一个具有相同状态但具有新值x的"兄弟"值.我可以称之为setX():
class Foo
{
...
Foo setX(int newX) { return new Foo(newX, this.otherstuff); }
...
}
Run Code Online (Sandbox Code Playgroud)
但是语义与setX()可变bean对象的标准setter约定不同,所以不知怎的,这感觉不对.
这种方法的最佳名称是什么?
我应该把它withX()或者newX()还是其他什么东西?
编辑:在我的情况下的额外优先级:我有脚本客户端(通过JSR-223和我导出的对象模型),可以轻松获取Foo对象.然而,调用构造函数或创建构建器或其他任何东西都很麻烦.因此,我希望提供此方法以方便脚本编写客户端.
我需要创建一个不可变的类,它只是一个成员字段容器.我希望它的字段在其构造函数中实例化一次(值应作为构造函数的参数给出).我希望这些字段是公开的但不可变的.我可以final在每个字段之前使用关键字用Java完成它.它是如何在PHP中完成的?