将PHP函数与HTML属性连接起来&;不能将类型对象用作数组


Concatenating PHP Function with HTML Attribute & Cannot Use Type Object as Array

我有两个问题

<lt;1.>>

我有这样的php打印代码。

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

to_string是一个将My Name生成为My_Name的函数,它可以使用$dt->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>';

但是,它是一样的。结果总是这样:当我在firebug中检查它时,<label class="control-label" for=" ">Name Component</label>。因此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;2>>

我有这样的文本输入代码:

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类型的对象用作数组我应该在其中输入什么?需要一些建议。。谢谢。

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

return $string;

当你这样做:

echo "something".to_string(something_else);

事件顺序如下:

  1. 调用CCD_ 5
  2. to_string回显它创建的字符串
  3. CCD_ 7返回CCD_
  4. "something"undefined级联,从而得到"something"
  5. CCD_ 12被回波

这就是为什么to_string的结果是标签外的回声,因为它在步骤2中被回声,而标签在步骤5中被回声。