添加其他include(php)使我的index.php为空白/白色

时间:2019-06-13 14:59:20

标签: php html

我正在尝试将两个include文件.php转换为.php中包含的另一个index.php文件。

它们的内容与该问题无关,因为仅使用一个include即可正常工作。

我有以下文件:

index.php

<!DOCTYPE html>
<html>    

<?php
    include('inputs.php');
?>
.
.
.
</html>

inputs.php

<?php

include('hex_to_rgb.php');
// include('rgb_to_hex.php');
.
.
.
?>

hex_to_rgb.php

<?php

class RGB
{
    public $R;
    public $G;
    public $B;
}

function HexadecimalToDecimal($hex)
{
    $hex = strtoupper($hex);

    $hexLength = strlen($hex);
    $dec = 0;

    for ($i = 0; $i < $hexLength; $i++)
    {
        $b = $hex[$i];

        if ($b >= 48 && $b <= 57)
            $b -= 48;
        else if ($b >= 65 && $b <= 70)
            $b -= 55;

        $dec += $b * pow(16, (($hexLength - $i) - 1));
    }

    return (int)$dec;
}

function HexadecimalToRGB($hex) {
    if ($hex[0] == '#')
        $hex = substr($hex, 1);

    $rgb = new RGB();

    $rgb->R = floor(HexadecimalToDecimal(substr($hex, 0, 2)));
    $rgb->G = floor(HexadecimalToDecimal(substr($hex, 2, 2)));
    $rgb->B = floor(HexadecimalToDecimal(substr($hex, 4, 2)));

    return $rgb;
}

?>

rgb_to_hex.php

<?php

class RGB
{
    public $R;
    public $G;
    public $B;
}

function DecimalToHexadecimal($dec)
{
    if ($dec < 1) return "00";

    $hex = $dec;
    $hexStr = "";

    while ($dec > 0)
    {
        $hex = $dec % 16;

        if ($hex < 10)
            $hexStr = substr_replace($hexStr, chr($hex + 48), 0, 0);
        else
            $hexStr = substr_replace($hexStr, chr($hex + 55), 0, 0);

        $dec = floor($dec / 16);
    }

    return $hexStr;
}

function RGBToHexadecimal($rgb) {
    $rs = DecimalToHexadecimal($rgb->R);
    $gs = DecimalToHexadecimal($rgb->G);
    $bs = DecimalToHexadecimal($rgb->B);

    return "#" . $rs . $gs . $bs;
}

?>

我看到的唯一问题是hex_to_rgb.phprgb_to_hex.php都声明并使用相似的变量,方法和类。 但事实是,我inputs.php中没有使用任何这些变量,方法或类。

我已在index.php

中添加了以下代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', '0');
?>

<?php
   print_r(array_keys(get_defined_vars()));
   print_r(array_values(get_defined_vars()));
?>

当它只是一个include时,我看不到任何错误。但是当我有两个include时,我什么也看不到,因为所有内容都是白色的。几乎是催眠了。

您怎么看?

编辑:

我最终同时删除了hex_to_rgb.phprgb_to_hex.php并修改并只使用了一个适合我需要的功能:

function HexadecimalToRGB($hex) {
    if ($hex[0] == '#')
        $hex = substr($hex, 1);

    $rgb = floor(hexdec(substr($hex, 0, 2)))." ".
    floor(hexdec(substr($hex, 2, 2)))." ".
    floor(hexdec(substr($hex, 4, 2)));

    return $rgb;
}

2 个答案:

答案 0 :(得分:2)

您有2个具有相同名称的类,即 RGB 。更改名称或仅使用其中一个,将类放在一个文件中。

编辑:如@Martin用户所说:

  

PHP可以具有相同的函数名称as long as they are in different namespaces

发帖问题并非如此,但这是可以在将来帮助人们的额外信息。

答案 1 :(得分:1)

  

我看到的唯一问题

您的问题就在其中。

在不离开浏览器的情况下,您可以选择“查看源代码”,并查看脚本是否返回了任何内容(在这种情况下,本来不会返回)。

PHP正在报告错误,但您已将服务器配置为对您隐藏。如果这是一台开发机,则添加...

error_reporting(E_ALL);

位于PHP代码的顶部。理想情况下,您还应该set up error logging