将PHP函数与HTML属性连接&不能将Type Object用作数组

时间:2013-07-19 05:00:34

标签: php html arrays concatenation

我有两个问题

<< 1.>>

我有这样的php打印代码。

echo '<label class="control-label" for="'.to_string($dt->name_comp).'">'.$dt->name_comp.'</label>';

to_string是将my Name生成为my_name的函数,它的工作原理是明确的,使用$ dt-&gt; name_comp生成数据库中的值。 所以......语法必须是类似html的语法:<label class="control-label" for="my_name">Name Component</label>

我想问一下,为什么上面的代码不起作用?为什么 my_name 没有进入

我试过这种方式:

echo '<label class="control-label" for="'. <?php to_string($dt->name_comp); ?>.'">'.$dt->name_comp.'</label>';

但是,同样如此。结果总是这样:<label class="control-label" for=" ">Name Component</label>当我在firebug中检查它时。因此 my_name 会显示在表单外部,不会进入表单。不知道为什么..

这是to_string()函数:

function to_string($string) {
  $string = preg_replace('/[\'"]/', '', $string);
  $string = preg_replace('/[^a-zA-Z0-9]+/', '_', $string);
  $string = trim($string, '_');
  $string = strtolower($string);
  echo $string; 
}

&LT;&LT; 2 - ;&GT;

我有像这样的textinput代码:

echo '<input type="text" name="'.to_string($dt->name_comp).'" id="'.to_string($dt->name_comp).'" placeholder="'.$dt->name_comp.'"  value="'.$dt['/name_comp/'].'">';

但是,有一个错误:致命错误无法使用workspace_mockup_2 \ Models \ Component类型的对象作为数组我应该在那里输入什么? 需要一些建议..谢谢。

1 个答案:

答案 0 :(得分:1)

to_string()的最后一行应该是:

return $string;

当你这样做时:

echo "something".to_string(something_else);

事件的顺序如下:

  1. to_string(something_else)被召唤。
  2. to_string回显它创建的字符串。
  3. to_string返回undefined
  4. "something"undefined连接,结果为"something"
  5. "something"得到了回应。
  6. 这就是为什么to_string的结果是标签外的回声,因为它在步骤2中回显,而标签在步骤5中回显。