PHP定义函数在包含文件中不起作用
假设我有3个PHP文件 file1.phpPHP定义函数在包含文件中不起作用,php,include,constants,Php,Include,Constants,假设我有3个PHP文件 file1.php <?php define('INTRO','Hello world'); ?> 它应该显示为 My first text is = Hello world My Second text is = Hello world 这是因为file1.php中的常量值没有传递到file3.php 它在我的pc上运行良好,但在服务器上运行不正常 我的电脑和服务器都使用Windows server 2016 64位+Apache2.4 64位+
<?php
define('INTRO','Hello world');
?>
它应该显示为
My first text is = Hello world
My Second text is = Hello world
这是因为file1.php
中的常量值没有传递到file3.php
它在我的pc上运行良好,但在服务器上运行不正常
我的电脑和服务器都使用Windows server 2016 64位+Apache2.4 64位+Php5.6 64位
服务器设置中是否缺少某些内容?将您的
include
更改为require
,您可能会看到您的文件未被包含,include将以静默方式失败
我猜你可能有一个大写问题,Linux文件系统是区分大小写的windows不是。因此,如果您的include使用file1.php
,但您的文件名为file1.php
,并带有大写字母,那么它将在Windows而不是Linux上工作
那么这个包含的东西就没告诉你就死了。代码在本地工作没有问题,因此只剩下环境
此外,在调用put的第一个文件中启用错误报告可能会有所帮助
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
它会在定义之前检查它是否已定义,但最好只使用一次require\u
同样在语义上,如果需要包含一个文件(即程序在没有它的情况下中断),那么应该使用require
包含它
干杯。对不起,对我有用。将您的包含更改为
要求
,您可能会看到您的文件未被包含,包含将自动失败。我猜你可能有一个大写问题,linux文件系统是区分大小写的windows不是。因此,如果File1.php
是capital,那么它将在Windows上工作,而不是在Linux上,那么include就不会告诉您了。代码在本地工作没有问题,因此只剩下环境。但是您应该注意:使用未定义的常量INTRO-假定的“INTRO”使用错误报告(E_ALL);ini_集('display_errors','1')代码>如果错误报告未打开,则不显示。。。这只是一个通知。这就是为什么他们把INTRO
作为一个词,因为它没有定义,如果它没有定义,那么include就失败了。如果include只在服务器上失败,那么很有可能它是大写的,正如我所说的。如果我使用require,同样的问题:)
My first text is = INTRO
My Second text is = INTRO
My first text is = Hello world
My Second text is = Hello world
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
if(!defined("INTRO")) define('INTRO','Hello world');