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;
答案 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";
}