use*_*143 15 php variables wordpress global-variables
我正在构建一个自定义主题,其中包含许多我希望在整个过程中使用的变量.
例:
$tv = $options['tv'];
$movies = $options['movies'];
$print = $options['print'];
//....and about 50 more.
Run Code Online (Sandbox Code Playgroud)
为此,我只是将它们全部放在一个名为vars.php的文件中,然后在主题的header.php中包含它...
require_once('vars.php');
Run Code Online (Sandbox Code Playgroud)
虽然这确实有效,但它并不是最好的方式.我在很多场合读过使用全局变量(大概是在function.php中)并不是一个好主意,但这是真的吗?
但是如果在functions.php中使用全局变量(甚至很多都是)这是正确的,那么这是正确的方法吗?:
global $tv;
$tv = $options['tv'];
global $movies
$movies = $options['movies'];
global $print
$print = $options['print'];
Run Code Online (Sandbox Code Playgroud)
最好的方法是在functions.php或插件的主插件文件中显式定义所有变量.我已经证实这是最流行的插件,包括akismet使用的方式.具体来说,你需要这样做.
define( MYVAR_TV, $options['tv'] );
define( MYVAR_MOVIES, $options['movies'] );
define( MYVAR_PRINT, $options['print'] );
Run Code Online (Sandbox Code Playgroud)
在这些之后,你可以随心所欲地使用它们
echo MYVAR_TV;
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
小智 8
使用全局是好的,但不鼓励(你可以在这里阅读更多PHP中的全局变量被认为是不好的做法吗?如果是这样,为什么?).您可以考虑使用Singleton:
<?php
class GlobalVariable {
/**
* @var array
*/
public static $option = [];
}
// You can set the variable using this way
GlobalVariable::$option['movies'] = 1;
// And get the variables using that array
print_r(GlobalVariable::$option);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮到你.
| 归档时间: |
|
| 查看次数: |
2257 次 |
| 最近记录: |