PHP变量从file1到filesA-Z

时间:2012-08-07 03:03:18

标签: php include

所以我看到一些关于使用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”以使变量起作用。与我现在所做的相比,是否有“更好的练习”或“最佳实践”方式?

2 个答案:

答案 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);

我不是说这种方法是最好的做法,但这只是我在所有项目中所做的事情。我也看不出它有什么问题。