Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP程序来创建一个方形块*&引用;由'包围的字符@';人物_Php_Html - Fatal编程技术网

PHP程序来创建一个方形块*&引用;由'包围的字符@';人物

PHP程序来创建一个方形块*&引用;由'包围的字符@';人物,php,html,Php,Html,尝试创建一些代码以生成如下块: @@@@@@@ @*****@ @*****@ @*****@ @*****@ @*****@ @@@@@@@ @@@@@@@ @*****@ @*****@ @*****@ @*****@ @*****@ @@@@@@@ 方形框的长度由$size变量确定 这是我的代码: <?php $size = 7; for($i = 0; $i < $size; $i++){ for($j = 0; $j < $size; $

尝试创建一些代码以生成如下块:

 @@@@@@@
 @*****@
 @*****@
 @*****@
 @*****@
 @*****@
 @@@@@@@
@@@@@@@
@*****@
@*****@
@*****@
@*****@
@*****@
@@@@@@@
方形框的长度由$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>");

}
?>
我有两个问题:

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


2) 有更好的方法吗?

=
是比较运算符,而不是
=
。例如,你在多个地方都有这个问题

if($i = 0 || $i = $size-1){
应该是

if($i == 0 || $i == $size-1) {

您不是在比较,而是在
if
elseif
中定义
$i
$j
。您必须使用
==
而不是
=

  • 因此,不仅有一次迭代,而且在每个循环中都要重置
    $i
    $j

  • 这完全取决于你想做什么:如果你想让它正确对齐,你可以使用
    我会做一个这样的函数

    <pre>
    <?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>");
    }
    ?>
    </pre>
    

    还可以使用
    标签来标记输出。好的,这很有效。非常感谢。对不起,我刚开始使用PHP!
    @@@@@@@
    @*****@
    @*****@
    @*****@
    @*****@
    @*****@
    @@@@@@@
    
    <?php 
    
    function drawBox($size) {
        $return = '';
        for($i = 0; $i < $size; $i++) {
            for($j = 0; $j < $size; $j++) {
               if($i==0 || $j==0) 
                   $return .= "@";
               elseif($i==$size-1 || $j == $size-1)
                   $return .= "@<br/>";
               else
                   $return .= "*";
            }
        }
        return $return;
    }
    
    echo drawBox(7);
    ?>