编辑代码

<?php

header("content-type:text/html;charset=utf-8");
//定义常量,代表五个灯泡
define('L1',1); // 00001
define('L2',2); // 00010
define('L3',4); // 00100
define('L4',8); // 01000
define('L5',16);// 10000


$state = 10; // 01010
//$state = 0; // 00000 灯泡全关
//$state = 31; // 11111 灯泡全开

//展示5个灯泡的状态
function showLights()
{
  for($i=1;$i<=5;++$i)
  {

   $light = 'L'.$i;
   if($GLOBALS['state'] & constant($light) )
   {
     echo 'L'.$i.'亮 ';   
   }
   else
   {

     echo 'L'.$i.'灭 '; 
   }

  }
}


echo "开始灯泡状态:<br>";
showLights();
echo "<br>";

//关闭任意一个指定的灯泡
$state = $state & ~L2;//关闭灯泡L2

echo "关闭灯泡L2:<br>";
showLights();
echo "<br>";



//打开任意个指定的灯泡
$state = $state | L1;//打开灯泡L1

echo "打开灯泡L1:<br>";
showLights();
echo "<br>";


//一键打开所有灯

function turnOnAll()
{
  for($i=1;$i<=5;++$i)
  {

   $light = 'L'.$i;
   $GLOBALS['state'] = $GLOBALS['state'] | constant($light);
  }
}

//一键关闭所有灯

function turnOffAll()
{
  for($i=1;$i<=5;++$i)
  {
   $light = 'L'.$i;
   $GLOBALS['state'] = $GLOBALS['state'] & ~constant($light);
  }
}


echo "打开所有灯:<br>";
turnOnAll();
showLights();
echo "<br>";


echo "关闭所有灯:<br>";
turnOffAll();
showLights();
echo "<br>";


//打开任意个指定的灯泡
$state = $state | L3;//打开灯泡L3

echo "打开灯泡L3:<br>";
showLights();
echo "<br>";