导致脚本在php中停止的函数

时间:2014-02-26 10:10:17

标签: php function syntax-error runtime-error

Apache 2.0上的PHP 5.5.3 我讨厌问什么似乎是一个简单的问题,但我完全坚持可能导致这个问题的原因。

我有一个函数,我写的是在简单的决策结构中执行简单的计算。如果我将该函数作为主要php文件的一部分包含在内,我正在使用该文件将无法运行。如果我将该函数放在一个单独的文件中并且需要该文件,那么脚本将不会超过require。如果我将该函数放在一个单独的文件中的类中,则需要该文件并创建一个对象表单,该表再次在require行停止。并且不会抛出任何错误!

我已经在主文件中使用相同的计算和决策结构尝试了它,只要我注释掉require和对象创建它一直运行良好。一旦我将require和对象创建替换(或将该函数传递到主文件中),问题就会再次出现。

我是否在语法上遗漏了一些无声的错误?我真的很茫然,特别是因为问题在于一个函数(现在是一个方法)这个简单!!!!

First.php:

<!DOCTYPE html>
<html>
<head>
    <title>Midi Stuff Sandbox & Testing</title>
</head>

    <body>
<?php
    require('./fun.class.php');
    $procs = new TheseFunctions();

    $string1 = "This is a string to try.";
    $array1 = explode(" ", $string1);
    echo "<pre>";
    print_r($array1);
    echo "\t</pre>\n";
    echo $procs->getTempo(4, 7);

    if (strlen($array1[1]) != 0)
    {
        $first = strlen($array1[0]);
        $second = strlen($array1[1]);

        echo "It's: " . ($first / $second);
    }
    else
    {
        echo "WTF" . $array[1];
    }
?>
</body>
</html>

带有函数的文件(我想也许它需要包含在一个类中,这就是为什么它在这里,但是它是否是,或者只是原始php文件的一部分它仍然会导致要停止而没有错误的脚本):file is fun.class.php

<?php
class TheseFunctions
{

function getTempo($first, $second){

    if ($second != 0)
    {
            $result1; 
            $current;
            $current = ($first / $second);

    } else {
        $current = $first;
    }

    return $current;
}
}
?>

所以是的,我意识到我可能错过了一些完全明显的东西,我不知道它是什么。

修改 在工作了30多分钟后(没有任何改变)它现在似乎工作正常。我真的不知道它为什么不是(以3种不同的方式),也不知道为什么它没有给我一个特定的信息。我道歉,但欣赏试图帮助的答案。也许MAMP只是试图给我一个偏头痛&​​gt;。&lt;

2 个答案:

答案 0 :(得分:0)

有些服务器要求您包含如下文件,您可以试试这个。

尝试:require(dirname(__ FILE __)。'/ fun.class.php');

我在不同类型的服务器上遇到此问题,有些接受包括其他需要dirname组合。

请务必检查fun.class的位置!我认为这确实是问题所在。

你真的不需要类中的两个未定义的变量:

$ RESULT1; $电流;

答案 1 :(得分:0)

似乎完全可以。结果是:

Array
(
[0] => This
[1] => is
[2] => a
[3] => string
[4] => to
[5] => try.
)
0.57142857142857It's: 2

我已经尝试了外部文件选项,以及内部的First.php类选项,它似乎没问题。我要检查的是:放

<?php error_reporting(E_ALL); ?>

到First.php的最顶层并在课堂上删除那些行:

$result1; 
$current;

另外,检查路径(./) - 它真的包含文件吗?

if(!require('./fun.class.php')){
    echo "There is no such file";
}