相关疑难解决方法(0)

PHP全局函数

global关键字的效用是什么?

是否有任何理由更喜欢一种方法?

  • 安全?
  • 性能?
  • 还要别的吗?

方法1:

function exempleConcat($str1, $str2)
{
  return $str1.$str2;
}
Run Code Online (Sandbox Code Playgroud)

方法2:

function exempleConcat()
{
  global $str1, $str2;
  return $str1.$str2;
}
Run Code Online (Sandbox Code Playgroud)

什么时候使用有意义global?

对我来说,它似乎很危险 ......但它可能只是缺乏知识.我感兴趣的是记录(例如代码示例,文档链接......)技术原因.

提前致谢!


赏金

这是关于这个主题的一个很好的一般性问题,我(@Gordon)正在提供奖励以获得更多答案.无论您的答案是否与我的答案一致或给出不同的观点都无关紧要.由于该global主题时不时出现,我们可以使用一个很好的"规范"答案来链接.

php language-design

98
推荐指数
7
解决办法
2万
查看次数

PHP中的全局变量是否被视为不良做法?如果是这样,为什么?

function foo () {
    global $var;
    // rest of code
}
Run Code Online (Sandbox Code Playgroud)

在我的小PHP项目中,我通常采用程序方式.我通常有一个包含系统配置的变量,当我需要在函数中访问此变量时,我会这样做global $var;.

这是不好的做法吗?

php global global-variables

84
推荐指数
5
解决办法
3万
查看次数

使用递归将html_entity_decode应用于对象和数组

我正在尝试构建一个将html_entity_decode应用于对象和数组的函数.由于我事先不知道结构,并且子属性也可以是对象或数组,因此简单的递归函数似乎是要走的路.我无法弄清楚为什么以下不起作用:

function decode($data){  
    if(is_object($data) || is_array($data)){
        foreach($data as &$value)
            $value = $this->decode($value);
    }
    else $data = html_entity_decode($data);

    return $data;
}
Run Code Online (Sandbox Code Playgroud)

我也试过以下,但也不起作用:

function decode($data){
    if(is_object($data))
        $data = get_object_vars($data);

    $data = is_array($data) ? array_map(array('MyClassName', 'decode'), $data) : html_entity_decode($data);

    return $data;
}
Run Code Online (Sandbox Code Playgroud)

这两种功能都不会对数据产生任何影响.我究竟做错了什么?

php

1
推荐指数
1
解决办法
3598
查看次数

警告:php文件中的非法字符串偏移'参数'

index.php文件中出现此错误

警告:非法字符串偏移'id'警告:非法字符串偏移'std'

<?php
    global $options;
    foreach ($options as $value) {
        if (get_settings( $value['id'] ) === FALSE) {
            $$value['id'] = $value['std']; 
        } else {    
            $$value['id'] = get_settings( $value['id'] ); 
        }
    }
Run Code Online (Sandbox Code Playgroud)

尝试在Wordpress中加载新主题时出现此问题...

php

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

php ×4

global ×1

global-variables ×1

language-design ×1