PHP程序创建一个由'@'字符包围的方块"*"字符

use*_*349 2 html php

试图创建一些代码来创建一个像:

 @@@@@@@
 @*****@
 @*****@
 @*****@
 @*****@
 @*****@
 @@@@@@@
Run Code Online (Sandbox Code Playgroud)

方框的长度由$ size变量确定.

这是我的代码:

<?php
$size = 7;
for($i = 0; $i < $size; $i++){
      for($j = 0; $j < $size; $j++){
    if($i = 0 || $i = $size-1){
      echo('@');
    }elseif($j = 0 || $j = $size-1)
      echo('@');
    else
      echo('*');
  }
  echo("</br>");

}
?>
Run Code Online (Sandbox Code Playgroud)

但是,此代码的输出是:

@@@@@@@
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

1)为什么它只进行外部for循环的一次迭代?

2)有更好的方法吗?

Joa*_*son 6

==是比较运算符,而不是=.例如,你在多个地方遇到这个问题;

if($i = 0 || $i = $size-1){
Run Code Online (Sandbox Code Playgroud)

应该是

if($i == 0 || $i == $size-1) {
Run Code Online (Sandbox Code Playgroud)