相关疑难解决方法(0)

Reference — What does this symbol mean in PHP?

What is this?

This is a collection of questions that come up every now and then about syntax in PHP. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.

Why is this?

It used to be hard to find questions about operators and other syntax tokens.¹
The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from …

php arguments symbols operators

4314
推荐指数
21
解决办法
63万
查看次数

将一系列父子关系转换为分层树?

我有一大堆的名字 - parentname对,我想转成少数heirarchical树形结构成为可能.例如,这些可能是配对:

Child : Parent
    H : G
    F : G
    G : D
    E : D
    A : E
    B : C
    C : E
    D : NULL
Run Code Online (Sandbox Code Playgroud)

需要转化为(a)层次结构树:

D
??? E
?   ??? A
?   ?   ??? B
?   ??? C   
??? G
    ??? F
    ??? H
Run Code Online (Sandbox Code Playgroud)

我想要的最终结果是一组嵌套的<ul>元素,每个元素都<li>包含孩子的名字.

有在配对没有不一致(孩子是它自己的父母,父母是孩子的孩子,等等),所以一堆优化大概可以做.

在PHP中,我如何从包含child => parent对的数组转到一组嵌套<ul>s?

我有一种感觉,涉及到递归,但我还没有完全清醒地思考它.

php tree recursion

97
推荐指数
5
解决办法
6万
查看次数

解释$ CI =&get_instance();

浏览codeigniter的源代码,

在它的帮助函数中,我一直看到代码 $CI =& get_instance(); ,任何人都可以向我解释这段代码是如何工作的?

我得到它返回对$ CI超级对象的引用,但是它get_instance()来自哪里?

php codeigniter

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

PHP中的"=&"和"&="运算符是什么意思?

PHP中的"=&"/"&="运算符是什么意思?我在哪里可以阅读有关它们的信息?

搜索Google无济于事.

php operators

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

Codeigniter中的get_instance():为什么要将它赋给变量?

在Codeigniter中,get_instance()是一个全局可用的函数,它返回包含所有当前加载的类的Controller超级对象(它返回Controller类实例).我将包含当前的源代码:

get_instance() 定义于 Codeigniter.php

// Load the base controller class
require BASEPATH.'core/Controller.php';

function &get_instance()
{
    return CI_Controller::get_instance();
}
Run Code Online (Sandbox Code Playgroud)

CI_Controller定义于Controller.php

class CI_Controller {

    private static $instance;

    /**
     * Constructor
     */
    public function __construct()
    {
        self::$instance =& $this;

        // Assign all the class objects that were instantiated by the
        // bootstrap file (CodeIgniter.php) to local class variables
        // so that CI can run as one big super object.
        foreach (is_loaded() as $var => $class)
        {
            $this->$var =& …
Run Code Online (Sandbox Code Playgroud)

php singleton codeigniter reference

58
推荐指数
1
解决办法
5万
查看次数

'&='和'=&'运算符有什么作用?

找到答案的结果比我想象的要困难得多.由于我不知道您称之为什么,因此很难运行Google搜索,因为它会忽略这些字符.

我尝试浏览PHP Assignment Operators页面,甚至其他操作页面,并没有发现任何告诉我他们究竟做了什么.我不仅仅想根据我使用它的单一功能进行猜测.那么'&='和'=&'运算符到底是做什么的呢?

我所知道的是它设置了一个变量,它是'='部分,所以我真的需要知道'&'部分正在做什么.

请不要说明显; 我需要有人来解释他们的确切行为.我知道其中一个是"按位",但这对我没有任何意义.

php variables operators

20
推荐指数
2
解决办法
4234
查看次数

PHP中的=&表示什么?

考虑:

$smarty =& SESmarty::getInstance();
Run Code Online (Sandbox Code Playgroud)

有什么&用?

php

19
推荐指数
2
解决办法
8420
查看次数

如何通过键名/路径访问和操作多维数组?

我将在PHP中实现一个setter,它允许我指定数组(目标)的键或子键,将名称作为点分隔键值传递.

给出以下代码:

$arr = array('a' => 1,
             'b' => array(
                 'y' => 2,
                 'x' => array('z' => 5, 'w' => 'abc')
             ),
             'c' => null);

$key = 'b.x.z';
$path = explode('.', $key);
Run Code Online (Sandbox Code Playgroud)

从价值的$key我想达到的值5$arr['b']['x']['z'].

现在,给定一个变量值$key和一个不同的$arr值(具有不同的深度).

如何设置所引用元素的值$key

对于getter get()我写了这段代码:

public static function get($name, $default = null)
{
    $setting_path = explode('.', $name);
    $val = $this->settings;

    foreach ($setting_path as $key) {
        if(array_key_exists($key, $val)) {
            $val = $val[$key];
        } …
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

18
推荐指数
2
解决办法
4644
查看次数

在PHP中,差异是什么:$ var2 = $ var1; $ VAR2 =&$ VAR1;

可能重复:
php =&中的引用赋值运算符

$var2 = $var1;
$var2 = &$var1;
Run Code Online (Sandbox Code Playgroud)

例:

$GLOBALS['a']=1;


function test()
{
    global $a;
    $local=2;
    $a=&$local;
}


test();

echo $a;
Run Code Online (Sandbox Code Playgroud)

为什么$ a仍然是1?

php

5
推荐指数
2
解决办法
2977
查看次数

Codeigniter自定义库和命名空间

我一直在为已移植到CI框架中的项目创建自定义库,但遇到了某些类具有相同名称的问题。

为了避免此问题,我尝试实现命名空间都无济于事。我一直在进行研究,我知道过去可能无法实现,但是对于较新版本的PHP,我想知道是否有一种方法可以做到这一点,或者我是否做得正确。

CI版本:2.1.4 PHP版本:5.4.12

这是我的设置的演示:

应用程序/库/class1.php

<?

class class1{
   public function __construct()
    {
        $CI =& get_instance();

        $CI->load->library('foo/class2.php');
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

应用程序/库/foo/class2.php

<?

namespace foo

class class2{

    function bar(){

    }

} 

?>
Run Code Online (Sandbox Code Playgroud)

运行CI应用程序时,将出现以下错误:

不存在的类别:class2

谢谢你的帮助。

php namespaces codeigniter

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