无法重新声明get_class()错误

时间:2016-01-16 12:38:25

标签: php

我尝试将effect类应用于input type="submit",只要其父表单操作包含字符串special

我使用以下代码,但Dreamweaver告诉我第15,16,22行中存在语法错误:

<?php
error_reporting(E_ALL); 
ini_set('display_errors', 'On');

$case1 = "special"; 
$item = "aaa"; 
$item = "something"; 

function get_class( $slug ) {
    $class_map = array(
        'special' => 'effect',
        'none'    => '',
        // .. you could add others here if appropriate

    return ( isset( $class_map[ $slug ] ) ) ? $class_map[ $slug ] : ''; //line 15
);  // line 16
?>
<HTML>
<body>
<form action="/go/<?= $item ?>/<?php echo $case1 ; ?>" method="POST" target="_blank">
<input name="a" type="hidden" value="<?php echo $a; ?>"/>
<input type="submit" class="<?= get_class( $case1 ); ?> general-class" value="Click Me"></form> // line 22
</body>
</HTML>

输出为空,我尝试运行文件时没有显示错误。

出了什么问题?

编辑2 - 更新代码:

现在在第16行发生致命错误:

Fatal error: Cannot redeclare get_class() on line 16

<?php
error_reporting(E_ALL); 
ini_set('display_errors', 'On');

$case1 = "special"; 
$item = "aaa"; 
$item = "something"; 

function get_class( $slug ) {
    $class_map = array(
        'special' => 'effect',
        'none'    => '',
        // .. you could add others here if appropriate
);
    return ( isset( $class_map[ $slug ] ) ) ? $class_map[ $slug ] : '';
} // line 16
?>
<HTML>
<body>
<form action="/go/<?= $item ?>/<?php echo $case1 ; ?>" method="POST" target="_blank">
<input name="a" type="hidden" value="<?php echo $a; ?>"/>
<input type="submit" class="<?php get_class( $case1 ); ?> general-class" value="Click Me"></form>
</body>
</HTML>

1 个答案:

答案 0 :(得分:0)

我在PHP中编写的代码很少,并且忘记了大部分语法。但是,从基本的理解来看,似乎如果这是你的整个代码库,那么你就错过了&#34;}&#34; (关闭函数get_class的大括号)或者你在下面的代码中放错了你的结束$ class_ map数组:

function get_class( $slug ) {
    $class_map = array(
        'special' => 'effect',
        'none'    => '',
        // .. you could add others here if appropriate

        return ( isset( $class_map[ $slug ] ) ) ? $class_map[ $slug ] : '';    //line 15
      );  // line 16

您的代码应该是以下两种之一:

function get_class( $slug ) {
    $class_map = array(
        'special' => 'effect',
        'none'    => ''
    );

    return ( isset( $class_map[ $slug ] ) ) ? $class_map[ $slug ] : '';
}

OR

function get_class( $slug ) {
    $class_map = array(
        'special' => 'effect',
        'none'    => '',
        return ( isset( $class_map[ $slug ] ) ) ? $class_map[ $slug ] : '';
    );
}

最后一个对我来说似乎不合适/可行。