语法错误帮助


Syntax error help

我似乎有语法错误,自己看不到,有人能帮我检查一下吗?

谢谢。

<script>
    var acurl_<?php echo $request_data['friendship_id']; ?> = "sn-include/create_bond_accept.php?friendship_id=<?php echo $request_data['friendship_id']; ?>&friend_id=<?php echo $fromuser['id']; ?>";
</script>

因为您得到了一些旨在向您展示如何改进代码的答案,但实际上并没有这样做(IMO),所以我的尝试是:

<?php 
    $acurl = array();
    $acurl[$request_data['friendship_id']] = sprintf('sn-include/create_bond_accept.php?friendship_id=%s&friend_id=%s', $request_data['friendship_id'], $fromuser['id']);
?>
<script>
    var acurl = <?php echo json_encode($acurl); ?>
</script>

我不会创建动态变量名。这段代码将创建一个JS对象,其中的属性是友谊ID,类似于:

{
    '42': 'sn-include/create_bond_accept...'
}

与使用动态变量名相比,您可以更容易地从JavaScript访问这些URL。

David,好的一面是,您没有语法错误。

如果你正在开发PHP,我建议你做两件事:

  1. 获得更好的IDE。Dreamweaver非常适合使用PHP。我推荐NetBeans(它很棒而且免费)
  2. 开始将代码分解成块。html和PHP的大球很难调试

看看这个:

<?php
    // prepare output
    $segment  = '?friendship_id=' . $request_data['friendship_id'];
    $segment .= '&friend_id=' . $fromuser['id'] . '";' . "'n";
    $acurl  = 'var acurl_' . $request_data['friendship_id'];
    $acurl .= ' = "sn-include/create_bond_accept.php';
    $acurl .= $segment;
    $dnurl  = 'var dnurl_' . $request_data['friendship_id'];
    $dnurl .= ' = "sn-include/create_bond_deny.php';
    $dnurl .= $segment;
?>
<script type="text/javascript">
    <?php
        echo $acurl;
        echo $dnurl;
    ?>
</script>

使用此处文档:

<?php
echo <<<JS
<script>
    var acurl_{$request_data['friendship_id']} = "sn-include/create_bond_accept.php?friendship_id={$request_data['friendship_id']}&friend_id={$fromuser['id']}";
</script>
<script>
    var dnurl_{$request_data['friendship_id']} = "sn-include/create_bond_deny.php?friendship_id={$request_data['friendship_id']}&friend_id={$fromuser['id']}";
</script>
JS;
?>

请参阅http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc