PHP变量变量不起作用......为什么?

时间:2013-07-16 03:40:50

标签: php html variables

我正在使用一个从数据库返回一个Fetched Array的函数(PDO :: fetch(PDO :: FETCH_ASSOC))。

此函数返回很多列,当我在表单中编辑所有这些列时,显然我需要填充当前数据的字段。

代码(为问题修改):

//returns something like $owner["name"], $owner["lastname"], 
//$owner["phone1"] ... and 53 fields more.

$owner = controllerGetOnwer($ownerID);

//So I used a foreach to create VARIABLE VARIABLES
foreach($owner as $key=>$value) {
     ${$key} = $value; //you get something like $name = <what is in that column>
}

我将在很多页面中使用此表单,不仅对于所有者,还对客户,管理员等等...这就是为什么我决定将表单放在静态类中的函数中我已经用于'渲染'我将使用很多次的所有HTML(例如标题,徽标,菜单等)

//This is inside the HTMLRenderClass

renderTheEditForm() {

?>
<form>
    Name: *<br/>
    <input type="text" name="personalname" value="<?php if(isset($name)) echo $name; ?>"/><br/><br/>
    Last Name: *<br/>
    <input type="text" name="personallastname" value="<?php if(isset($lastname)) echo $lastname; ?>"/><br/><br/>
    Phone Number 1:<br/>
    <input type="text" name="personalphone1" value="<?php if(isset($phone1)) echo $phone1; ?>"/><br/><br/>


<!-- AND 53 FIELDS MORE -->


</form>    
<?PHP
}

您在VALUE属性中看到的所有变量都与在FOREACH中以dinamically方式创建的变量相同。当我将表单HTML代码粘贴到Foreach下面时,我可以看到正在加载的数据,但是当我使用HTMLRenderClass中的函数时,我什么都没得到......我找不到原因。

我希望我解释得很好,事先谢谢!

1 个答案:

答案 0 :(得分:1)

您似乎需要在函数内定义变量或将它们传递给函数。