用PHP进行代码高尔夫挑战
首先
码农高尔夫很有趣啊。考虑了这个那个,就会诞生平常不见的源代码,让人感到新鲜。我想有些人平时不写PHP,所以为了降低门槛,我将一些可能有用的东西简单总结了一下。(比较相关的内容没有写得很深,所以请参考官方页面)
Formula/Equation
所有的信息都写在这里:https://www.php.net/manual/ja/langref.php
变量声明
// 変数名は必ず$をつけます。
$hoge = '1';
// 数字から始まる以下のような変数名は無効です。
$1 = '1';
$1_hoge = '11';
// 大文字小文字違いは別の変数として扱われます。
$hoge = 'あ';
$HOGE = 'い';
echo $hoge;// あ
echo $HOGE;// い
生成数组
// 以下は同じ配列が得られます。
$a = [1, 2, 3];
$a = array(1, 2, 3);
// 多次元配列の場合は変数化した方が短くなります。
$a = [[1, 2, 3], [4, 5, 6]];
$a = array(array(1, 2, 3), array(4, 5, 6));
// array()にListとMapの区別はないものと思ってもらって大丈夫です。
// 一部だけkeyを指定することもできます。
$a = array(
1,
'hoge' => 2,
3
);
// 型の制約がないので以下のような配列も作れます。
$a = array(1, 'a', true, '1');
// これをimplode(to_sのような文字列表現)に渡すと以下のような結果になります。
echo implode($a); // 1a11
循环处理 chǔ lǐ)
// 普通のfor
for ($i = 0; $i < 10; $i++) echo $i;
// 普通のwhile
// インクリメントの前置後置の扱いは一般的な他言語と同じです。
$i = 0;
while ($i < 10) echo $i++;
// 拡張for
// インデックスが不要な場合、$i=>を削ります。
foreach (array('a', 'b', 'c') as $i => $n) echo $n;// abc
输出
// 文字列連結に.を使います。
$s = 'hoge'.'fuga';
// ダブルクォートで変数展開します。
echo 'hoge\nfuga';
// hoge\nfuga
echo "hoge\nfuga";
// hoge
// fuga
// 出力するだけならechoで足ります。引数で渡す必要がないため短くなります。
echo 'hoge';
echo('hoge');// 上と同じ
// printfでフォーマット出力になります。
// 第一引数がフォーマッタ、以降は可変長です。
$n = 1000;
$u = '円';
printf("%d%s", $n, $u);//1000円
最后
在途中确认时,我使用了以下的指令。
// 半角スペースとLFを除去
sed -e 's/ //g' ファイル名.php | tr -d '\n'
当需要获取字节大小时,使用wc -c命令。将其与wc -m命令连起来。
另外,根据执行环境,PHP标签也可能会被删除。
随着这些内容被压缩,逐渐会有一种编码高尔夫的感觉。