说我有以下文件
<?php
session_start();
function getSessionData(){
...
// returns array
}
?>
<?php
session_start();
include("functions.php");
$sessionData = getSessionData();
?>
<html>
<head>
<title>test</title>
</head>
<body>
<?php print_r($sessionData); ?>
</body>
</html>
现在index.php包含functions.php。因为我在index.php中有session_start()
,这是否意味着它会自动添加到functions.php中(因为函数包含在索引中?)
我不确定我是否明确表示。
<?php
$url = "www.example.com";
?>
<?php
include("config.php");
function getSomething(){
...
return $url
}
?>
<?php
include("config.php");
include("functions.php");
$some_var = getSomething();
?>
<html>
<head>
<title>test</title>
</head>
<body>
<?=$some_var;?>
</body>
</html>
现在,functions.php和index.php都包含config.php ...
但是因为config已经包含在index.php ...
中这是否意味着必须包含函数aswel?
我想我只是困惑自己tbh :)
答案 0 :(得分:6)
是。您可以将include视为简单地粘贴include语句所在文件中的代码。
在示例2中,您不需要在索引中再次包含config,因为它已经包含在函数中(反之亦然) - 您实际在做的是在config.php中运行代码两次(例如,使用include_once
可以防止这种情况。
示例1中的session_start()
也是如此。当加载索引时,会发生以下情况:
session_start
session_start
(现在不需要)function getSessionData() {..}
getSessionData()
另外,在你的第二个例子中,如果没有在它之前调用$url
(在函数内部),你将无法访问该函数中的global $url
。