【问题标题】:Variables not holding变量不持有
【发布时间】:2011-08-17 04:29:30
【问题描述】:

我有一个带有 2 个变量的 .php 脚本。 $company 和 $user。在这个 .php 脚本中,我 require_once "/var/www/etc/etc/etc/etc/"

我需要一次的 .php 文件,前一个 .php 脚本中的变量不会转移过来。我不知道为什么,或者我做错了什么。例如。

master.php 脚本

$company = "Some Company";

$user = "John";

require_once "/var/www/$company/$user/example.php

example.php 脚本

$myFile = "/var/www/$company/$user/Template/Download/example.php";

变量 $company 和 $user 中保存的数据在示例脚本中没有保留。我不明白为什么。

谢谢

【问题讨论】:

  • 您确定脚本没有出错,因为您在 require_once 调用中忘记了";
  • 不,这只是一个错字。它确实有 ;在我的代码上
  • 是否抛出错误?如果没有,请尝试打开error reporting 的最高级别(包括脚本顶部的error_reporting(E_ALL); 行)并提供显示的错误。

标签: php variables require-once


【解决方案1】:

如果变量在其scope之外使用,则需要使用关键字“global”:

$foo = 'bar';

function fooBarBad() {
    echo $foo; //will echo nothing
}

function fooBarOk() {
    global $foo;

    echo $foo; //will echo bar
}

【讨论】:

    【解决方案2】:

    您是否在新页面的函数中使用变量?如果是这种情况,那么您需要将它们注册为函数内的全局变量。否则,应该在从包含调用它们的脚本中正确读取变量。

    【讨论】:

    • 是的,我在新的 php 页面的函数中使用变量。如何在函数内将它们注册为全局?我是在函数内部还是之前将它们注册为全局?
    【解决方案3】:

    您的变量是否在函数中?如果是这种情况,您可能会丢失变量。

    在这种情况下,您必须在函数内使用“global”关键字,或者使用 $GLOBALS 变量来注册您的变量。

    要真正查看您的变量是否正确传递,您可以这样做

    var_dump($company);
    var_dump($user);
    

    在文件example.php的顶部

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2015-08-09
      • 2020-02-19
      相关资源
      最近更新 更多