php - 如何将另一个文件中的变量值获取到函数 php 中?
问题描述
我有一个 Joomla 模块
在Default.php文件中,调用了一个函数和一个来自xml 文件的变量。
但它没有找到变量函数。
$mod_circle_display1未被函数读取;
并且函数直接看到else,函数的输出是column1(意思是 :$mod_circle_displayres3 )。
我的默认.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.
解决方案
首先,您必须低估就您的 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 设为全局变量
推荐阅读
- duktape - duktape js - 具有多个上下文,具有自己的全局并引用一个常见的“单例”
- multithreading - 当另一个线程同时修改队列时,线程应该如何验证队列是否已满?
- java-8 - 从 jdk1.8 更新到 jdk 11 时 jdk nashron 的编译错误
- xcode - 无法从路径 Frameworks/RCTVibration.framework/Info.plist 的包中加载 Info.plist:没有这样的文件或目录(React Native)
- typescript - 使用 Realm、MongoDB (Atlas) 和 React Native 在用户之间共享和同步数据
- spring-boot - 如何在docker中为maven插件添加Jasypt解密密钥
- python - 使用字典方法搜索字符串格式中包含的值 - Python
- excel - 如何在 Excel 64 位中使用 VBA 连接到 IBM DB2 数据源
- mysql - MySQL 标签系统(3 个表) - 如何选择最后 10 个发布的帖子以及与每个帖子关联的所有标签?
- javascript - 带有 php 的 HTML5 Canvas API