所以我看到一些关于使用PHP将变量从文件传递到文件的争议。这样做的“最佳方式”是什么?
目前,我有一个像这样的设置
文件1:
<? $foo = 'somethingCoolHere';
$bar = 'nothingLameThere'; ?>
文件A:
<? include('/link/to/file1.php');
printf('stuff' .$foo. 'stuff'); ?>
文件B:
<? include('/link/to/file1.php');
printf('stuff' .$foo. 'stuff');
printf('stuff' .$bar. 'stuff'); ?>
这很有效,'好吧'。但如果有人想扩展我所拥有的东西,他们可能需要记住在顶行包含“include”以使变量起作用。与我现在所做的相比,是否有“更好的练习”或“最佳实践”方式?
答案 0 :(得分:1)
我也为我的项目采用了类似的模式,但我想在你的代码中指出一件事。假设如果多个程序员正在处理大型项目,则很难跟踪不同文件中定义的变量。因此,我始终确保关联数组用于对相似值进行分组,而不是为每个值使用单独的变量。您可以考虑使用以下结构。
文件1:
<?php
$file1['foo'] = 'somethingCoolHere';
$file1['bar'] = 'nothingLameThere';
?>
文件A:
<?php
include('file1.php');
printf('stuff' .$file1['foo']. 'stuff');
?>
文件B:
<?
include('file1.php');
printf('stuff' .$file1['foo']. 'stuff');
printf('stuff' .$file1['bar']. 'stuff');
?>
通过这种方式,您可以组织数据,而且使代码审查和以后的开发变得不那么令人生畏。
答案 1 :(得分:0)
就个人而言(不确定其他人是否同意),我会在包含文件时使用绝对路径。而且我会把这些路径放在常数中。为什么?因为如果我需要更改路径(比如说我移动了一个文件或其他东西),我就不必遍历每个文件来改变路径,而只需要修改定义常量的文件。
一个例子:
constant.php
define('file1' , 'abolute/path/to/file1');
define('fileA' , 'abolute/path/to/fileA');
define('fileB' , 'abolute/path/to/fileB');
然后在任何需要使用常量的文件中包含constant.php:
something.php:
include_once($_SERVER['DOCUMENT_ROOT'].'/constant.php');//we now have access to our constants
include_once(fileA);
include_once(fileB);
include_once(file1);
我不是说这种方法是最好的做法,但这只是我在所有项目中所做的事情。我也看不出它有什么问题。