php如果返回意外错误

时间:2013-01-29 23:29:55

标签: php

我有一个PHP,如果这给我一个错误,这个错误:解析错误:语法错误,意外'=',在线包含此代码:$result -= 'tm_year' = 1900;有人知道如何解决这个问题吗? / p>

if (!function_exists( 'strptime' )) {
        function strptime($strdate, $format) {
            $plop = array( 's' => 'tm_sec', 'i' => 'tm_min', 'H' => 'tm_hour', 'd' => 'tm_mday', 'm' => 'tm_mon', 'Y' => 'tm_year' );
            $regexp = preg_quote( $format, '/' );
            $regexp = str_replace( array( '%d', '%m', '%Y', '%H', '%i', '%s' ), array( '(\d{2})', '(\d{2})', '(\d{4})', '(\d{2})', '(\d{2})', '(\d{2})' ), $regexp );

            if (preg_match( '/^' . $regexp . '$/', $strdate, $m )) {
                $result = array( 'tm_sec' => 0, 'tm_min' => 0, 'tm_hour' => 0, 'tm_mday' => 0, 'tm_mon' => 0, 'tm_year' => 0, 'tm_wday' => 0, 'tm_yday' => 0, 'unparsed' => '' );
                preg_match_all( '/%(\w)/', $format, $patt );
                foreach ($patt[1] as $k => $v) {
                    if (!isset( $plop[$v] )) {
                        continue;
                    }

                    $result[$plop[$v]] = intval( $m[$k + 1] );

                    if ($plop[$v] == 'tm_mon') {
                        $result -= $plop[$v] = 1;
                        continue;
                    }
                }

                $result -= 'tm_year' = 1900;
                return $result;
            }

            return false;
        }
    }

1 个答案:

答案 0 :(得分:2)

'tm_year'是您尝试为其分配值1900的字符串。你不能这样做,因此错误。看起来像是一个试图写速记代码过于可爱的情况,因为老实说无法分辨你的意图。