我正在尝试将两个include
文件.php
转换为.php
中包含的另一个index.php
文件。
它们的内容与该问题无关,因为仅使用一个include
即可正常工作。
我有以下文件:
<!DOCTYPE html>
<html>
<?php
include('inputs.php');
?>
.
.
.
</html>
<?php
include('hex_to_rgb.php');
// include('rgb_to_hex.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;
}
?>
<?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.php
和rgb_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.php
和rgb_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;
}
答案 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。