Cod*_*ler 4 php arrays operators slice
是否有一些创新方法可以缩短"印刷"时间而不会产生太多混淆?您最喜欢哪种"印刷品"?
define('_','_');
function _j($a, $b) {
return $a._.$b;
}
// Output 0_0
print (0)._.(0);
print _j(0,0);
Run Code Online (Sandbox Code Playgroud)
更新
我想要做的是将Python/Ruby中的切片语法转换为PHP,例如.
a[1:3]
a[1,3]
a[1..3]
Run Code Online (Sandbox Code Playgroud)
要使它成为PHP你需要这样引用$a["1:3"]($ a是一个带有ArrayAccess接口的类)所以我在想是否有其他的,$a[(0)._.(0)]这太长了.
你想让我做什么?连接字符串?使用implode:
echo implode('_', array(0, 0));
Run Code Online (Sandbox Code Playgroud)
不短,但绝对不那么混乱,更具可读性,并且最能传达意图
现在编辑问题已有足够的信息:
您有一个实现 ArrayAccess 接口的类。
为什么不使用十进制数来实现切片运算符?
$a = new PythonArray(array(1, 2, 3, 4, 5));
$b = $a[1.3];
Run Code Online (Sandbox Code Playgroud)
然后您应该能够将数字转换为字符串并按句点分割。您也可以用来floor获取这两个部分。然后委托给array_slice:
list($start, $len) = explode('.', (string)$offset);
return array_slice($internal_array, $start, $len);
Run Code Online (Sandbox Code Playgroud)
但请注意,浮点精度可能存在问题。使用引号有什么问题吗?多出两个角色也不算太糟糕。