php - 函数echo一个变量

时间:2013-08-31 10:29:47

标签: php html function

我目前正在为我正在处理的脚本编写一些函数。我的问题是,内容的生成方式是php变量。

因此,要生成页面内容,必须如下:

$contents .="page content inside this";

如果我像这样echo

echo "page content inside this";

然后回显的文本将出现在页面顶部。因此,我必须使用$contents.="";来生成页面内容。

我目前正在编写一个可以快速生成复选框的函数。我的功能如下:

function checkbox($name, $value, $checked){

    if($checked == 1){
        $checked = "checked"; 
    }else{ 
        $checked ="";
    }

    $contents.="<div class='roundedOne'>
   <input type='checkbox' value='$value' id='roundedOne' name='$name' $checked />
   <label for='roundedOne'></label>
  </div>";

}

当我在页面内调用该函数时,不会出现任何内容:

$contents.="
".checkbox("name","value","1")."
";

我可以想象,当我调用该函数时没有任何反应的原因是我使用了$contents而不是echo,但不幸的是,这是我唯一的选择,因为脚本是加密的,所以我无法改变$contents的行为方式。

我的问题是,如何使用$ contents打印函数?

6 个答案:

答案 0 :(得分:0)

在函数内部使用它之前,您需要将$contents声明为全局(不推荐) -

global $contents;
$contents.="<div class='roundedOne'>
     <input type='checkbox' value='$value' id='roundedOne' 
     name='$name' $checked />
     <label for='roundedOne'></label>
     </div>";

或者,更好的是,您可以从您的函数生成内容然后将其返回 -

function checkbox($name, $value, $checked){

    if($checked == 1){
        $checked = "checked"; 
    }else{ 
        $checked ="";
    }

    return "<div class='roundedOne'>
       <input type='checkbox' value='$value' id='roundedOne' name='$name' 
       $checked />
       <label for='roundedOne'></label>
       </div>";        
}

$contents.= checkbox("name","value","1");

此外,您正在更改函数内$checked参数的类型。强烈建议不要使用这种编码方式。尽量不要以这种方式改变变量的类型,它将为您省去很多麻烦。

答案 1 :(得分:0)

使用global $contents或功能结束return $contents

答案 2 :(得分:0)

你从这个功能返回了什么?从函数返回字符串。或者使用$ content作为全局变量,如oliverbj建议的那样

答案 3 :(得分:0)

不确定我是否正确理解您的问题。您是否尝试使用全球

<?php

$contents = "string string string";

function checkbox($name, $value, $checked){

    global $contents;

    if($checked == 1){
        $checked = "checked"; 
    }else{ 
        $checked ="";
    }

    $contents.="<div class='roundedOne'>
   <input type='checkbox' value='$value' id='roundedOne' name='$name' $checked />
   <label for='roundedOne'></label>
  </div>";

}

$contents.=" ".checkbox("name","value","1")." ";

echo $contents;

?>

答案 4 :(得分:0)

从函数中返回$contents的值。

使用这种方式,您可以在页面中获得$contents的价值。

function checkbox($name, $value, $checked){

    if($checked == 1){
        $checked = "checked"; 
    }else{ 
        $checked ="";
    }

    $contents.="<div class='roundedOne'>
   <input type='checkbox' value='$value' id='roundedOne' name='$name' $checked />
   <label for='roundedOne'></label>
  </div>";
  return $contents;
}

答案 5 :(得分:0)

你的功能没有回报价值。

所以你没有得到任何来自checkbox函数的回复。

只需要return $contents来自函数,然后回显结果将为你做。

function checkbox($name, $value, $checked){

    if($checked == 1){
        $checked = "checked"; 
    }else{ 
        $checked ="";
    }

    $contents.="<div class='roundedOne'>
   <input type='checkbox' value='$value' id='roundedOne' name='$name' $checked />
   <label for='roundedOne'></label>
  </div>";
  return $contents;
}

然后,

echo $contents;