用php插入函数名

时间:2012-06-21 13:21:03

标签: php

我正在尝试执行一项简单的任务,在“onmouseover”下插入第二个函数名称,但语法可能有问题。

echo '<div onmouseover="changeText(); <?php if($title==""){echo changeViz();}; ?> ">';

我可能需要逃避一些引用并添加一些,但我无法弄清楚正确的解决方案。 感谢

没有什么工作。让我给你完整的代码......:

echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); <?php if($title[$i]==""){echo changeViz();}; ?>">';

3 个答案:

答案 0 :(得分:4)

您在现有的PHP代码中嵌套<?php ?>,这是一个语法错误。而是在javascript函数changeViz()中作为带引号的字符串连接。

此版本使用ternary operator复制您最初的if()语句。

echo '<div onmouseover="changeText(); ' . ($title == '' ? 'changeViz();' : '') .  '">';

这里的三元操作会将changeViz();连接到echo字符串if $title == "",或者只是连接空字符串。

看到完整代码后更新:

你在第一部分中引用了正确的引用。

echo '<div class="frame" onmouseover="changeText(\'' . $text[$i] . '\'); ' . ($title == '' ? 'changeViz();' : '') .  '">';

答案 1 :(得分:1)

如果您不尝试在一行中执行所有操作,则可以使代码更具可读性:

$onmouseover_action = "changeText(); ";
if($title==""){
    $onmouseover_action .= "changeViz(); ";
}
echo '<div onmouseover="'.$onmouseover_action.'">';

它使您的代码更易于维护,并且您不需要对其进行评论,因为它更好地描述了自己。

答案 2 :(得分:0)

试试这个:

echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); '. ($title[$i]=="")?'changeViz();':'').'">';