【问题标题】:How can I get the value of a variable from another file into the function php?如何将另一个文件中的变量值获取到函数 php 中?
【发布时间】:2019-01-25 08:11:28
【问题描述】:

我有一个 Joomla 模块
Default.php 文件中,调用了一个函数并来自 xml 文件的一个变量。
但它没有找到变量函数。
$mod_circle_display1 函数未读取;
而函数直接看到else,函数的输出是column1(即:$mod_circle_displayres3)。

我的 Default.php

require_once __DIR__ . '/function.php';
$check = CheckDisplay();
 ?>

 <div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move1;?>"
 style="<?php echo $mod_circle_display1;?>">

 <div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move2;?>"
 style="<?php echo $mod_circle_display2;?>">

 <div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move3;?>"
 style="<?php echo $mod_circle_display3;?>">

 <div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move4;?>"
 style="<?php echo $mod_circle_display4;?>">


我的函数.php

         function CheckDisplay ()
{ 
       /*global $mod_circle_display1; is not worked*/
       /*global $mod_circle_display2; is not worked*/
       /*global $mod_circle_display3; is not worked*/
       /*global $mod_circle_display4; is not worked*/
        $mod_circle_display1;
        $mod_circle_display2;
        $mod_circle_display3;
        $mod_circle_display4;

        $mod_circle_displayon = "display:none !important";
        $mod_circle_displayoff = "padding:0";

        $mod_circle_displayres1 = "column4";
        $mod_circle_displayres2 = "column2";
        $mod_circle_displayres3 = "column1";

     if (($mod_circle_display1 == $mod_circle_displayoff)AND($mod_circle_display2 == $mod_circle_displayoff)AND
         ($mod_circle_display3 == $mod_circle_displayoff)AND($mod_circle_display4 == $mod_circle_displayoff))
        {
           return $mod_circle_displayres1;
        }
 elseif (($mod_circle_display1 == $mod_circle_displayoff)AND($mod_circle_display2 == $mod_circle_displayon)AND
         ($mod_circle_display3 == $mod_circle_displayoff)AND($mod_circle_display4 == $mod_circle_displayon))
        {
           return $mod_circle_displayres2;
        }
  else { return $mod_circle_displayres3; }


我的 mod_circle.xml

<field name="mod_circle_display1"
 type="list" 
 default="padding:0" 
 label="MOD_CIRCLE_DISPLAY1" 
 description="MOD_CIRCLE_DISPLAY1">
 <option value="display:none !important">Yes</option>
 <option value="padding:0">No</option>
</field>
and ...


我的 mod_circle.php

defined( '_JEXEC' ) or die( 'Restricted access' );

require_once __DIR__ . '/helper.php';

$mod_circle_background          = $params->get('mod_circle_background');
$mod_circle_widthrl             = $params->get('mod_circle_widthrl');
$mod_circle_display1            = $params->get('mod_circle_display1');
$mod_circle_image1              = $params->get('mod_circle_image1');
$mod_circle_opacity1            = $params->get('mod_circle_opacity1');
$mod_circle_width1              = $params->get('mod_circle_width1');
$mod_circle_height1             = $params->get('mod_circle_height1');
$mod_circle_margin1             = $params->get('mod_circle_margin1');
$mod_circle_radius1             = $params->get('mod_circle_radius1');
$mod_circle_circle1             = $params->get('mod_circle_circle1');
$mod_circle_circletime1         = $params->get('mod_circle_circletime1');
and
    $mod_circle_display2            = $params->get('mod_circle_display2');
Etc.
    $mod_circle_display3            = $params->get('mod_circle_display3');
Etc.
    $mod_circle_display4            = $params->get('mod_circle_display4');
Etc.

【问题讨论】:

  • 当您需要特定于 Joomla 的支持时,请在 Joomla Stack Exchange 上发布您的问题,以获得专门的支持受众。 Joomla 团队希望您在那里发帖 - 这就是为什么在管理员 -> 帮助菜单中,下拉列表中的倒数第二项显示 Stack Exchange

标签: php joomla3.0 joomla-extensions


【解决方案1】:

首先,您必须低估就您的 PHP 脚本而言,$mod_circle_display1 不存在。

它可能存在(可以这么说)在 XML 中,但不存在于您的 PHP 中

您需要先将 XML 文件中的所需值解析为 php 变量 ($mod_circle_display1),然后将 $mod_circle_display1 设为全局变量(参见本教程:https://www.w3schools.com/php/php_xml_simplexml_read.asp

您甚至可以从函数内部将 XML 文件读入 $mod_circle_display1,这样您就不需要将 $mod_circle_display1 设为全局变量

【讨论】:

  • 在 mod_circle.php 文件中,所有的 xmls 都被调用,我在我的问题中添加了 mod_circle.php 文件。
  • 我似乎仍然无法找到您在代码中解析 xml 的位置。从 xml 中读取这些信息的唯一方法是使用 php_xml_simplexml_read() 之类的东西来解析它,如我给你的链接中所述
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多