kentei_syunrai さんの言うようにelse
とelse if
の前にあるスペースが全角になっているのが原因だと思います。(echo の前もそうかも)
こういった場合、こちらのサイトでは、コードをインデントや空白をそのまま貼り付ける機能があるので、その機能を使用して記述すると的確な回答が得られます。
また、エラーの内容も正確に記述すると、回答者が間違ったポイントを指摘するヒントになります。
おまけ
このコードは意図した動作を正確にはしません。
比較は===
を使用することをオススメします。
php
1<?php
2$arr = [
3 0,
4 1,
5 'hoge',
6 '0hoge',
7 '1hoge',
8 false,
9];
10foreach ($arr as $i) {
11 echo '$i='.$i.':';
12 if ($i == 0) {
13 echo "iは0に等しい";
14 } elseif ($i == 1) {
15 echo "iは1に等しい";
16 } else {
17 echo "iは0でも、1でもない";
18 }
19 echo '<br>';
20}
21echo '<br>';
22foreach ($arr as $i) {
23 echo '$i='.$i.':';
24 if ($i === 0) {
25 echo "iは0に等しい";
26 } elseif ($i === 1) {
27 echo "iは1に等しい";
28 } else {
29 echo "iは0でも、1でもない";
30 }
31 echo '<br>';
32}
$i=0:iは0に等しい
$i=1:iは1に等しい
$i=hoge:iは0に等しい
$i=0hoge:iは0に等しい
$i=1hoge:iは1に等しい
$i=:iは0に等しい
$i=0:iは0に等しい
$i=1:iは1に等しい
$i=hoge:iは0でも、1でもない
$i=0hoge:iは0でも、1でもない
$i=1hoge:iは0でも、1でもない
$i=:iは0でも、1でもない