php – 假阵列切片运算符:缩短运算时间

是否有一些创新方法可以缩短“印刷”时间而不会产生太多混淆?您最喜欢哪种“印刷品”?

define('_','_');
function _j($a, $b) {
    return $a._.$b;
}

// Output 0_0
print (0)._.(0);
print _j(0,0);

更新

我想要做的是将Python / Ruby中的切片语法转换为PHP
例如.

a[1:3]
a[1,3]
a[1..3]

要使它成为PHP你需要像这样引用$a [“1:3”]($a是一个带有ArrayAccess接口的类)所以我在想是否有其他的,$a [(0)._.(. 0)]这太长了.

解决方法:

你想让我做什么?连接字符串?使用implode

echo implode('_', array(0, 0));

不短,但绝对不那么令人困惑,更具可读性,最能传达意图

现在编辑该问题有足够的信息:

你有一个实现ArrayAccess接口的类.

为什么不使用十进制数来实现切片运算符?

 $a = new PythonArray(array(1, 2, 3, 4, 5));
 $b = $a[1.3];

然后,您应该能够将数字转换为字符串并在句点上拆分.你也可以使用地板来获得这两个部分.然后委托给array_slice:

 list($start, $len) = explode('.', (string)$offset);
 return array_slice($internal_array, $start, $len);

请注意,浮点精度可能存在问题.
虽然使用引号有什么问题?两个额外的字符也不算太差.

上一篇:javascript – 如果条件内部不是(!!)


下一篇:php中的==和===运算符