4

あまり混乱することなく「印刷」を短くする革新的な方法はありますか?そして、あなたが最も好きな「プリント」のどれですか?

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)]た。これは長すぎます。

4

5 に答える 5

5

混乱を取り除くつもりなら、難読化には程遠いので、そのようなコードを書くべきではありません。

于 2010-08-12T08:37:27.163 に答える
1

何をしたいですか?文字列を連結しますか?使用implode

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

短くはありませんが、間違いなく混乱が少なく、読みやすく、意図を最もよく伝えます


質問に十分な情報が含まれているので、今すぐ編集します。

ArrayAccessインターフェースを実装するクラスがあります。

スライス演算子を実現するために10進数を使用してみませんか?

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

これで、数値を文字列に変換して、ピリオドで分割できるようになります。floor両方のパーツを取得するために使用することもできます。次に、に委任しarray_sliceます:

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

ただし、浮動小数点の精度に問題がある可能性があることに注意してください。しかし、引用符を使用することの何が問題になっていますか?2つの余分な文字はそれほど悪くはありません。

于 2010-08-12T08:36:00.863 に答える
1

これは PHP であるため、print の代わりに echo を使用することで、コードを少し短くすることができます。

于 2010-08-12T08:36:37.600 に答える
1

率直なアプローチはうまく機能します。

比較

print "0_0";
print _j(0,0);

ここであなたの目標が何であるかは完全にはわかりません。

于 2010-08-12T08:37:10.940 に答える
0

これは最短で混乱のない方法です:p

echo "0_0";
于 2010-08-12T08:57:54.837 に答える