繁体   English   中英

将PHP函数与HTML属性连接,并且不能将类型对象用作数组

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

我有两个问题

<< 1。>>

我有这样的PHP打印代码。

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

to_string是一个将“我的名字”生成为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; 
}

《 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. to_string(something_else)被调用。
  2. to_string回显它创建的字符串。
  3. to_string返回undefined
  4. "something"undefined串联在一起,这导致"something"
  5. 回响"something"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM