2011-12-10 101 views
-1

我有两个私有阵列,我试图将内容添加到整体str_replace($content, $array1, $array2)为什么我的数组没有被填充?

这里有一个基本的例子:

class whyWontThisWork { 
     private $replaceArr = array(); 
     private $replacedArr = array(); 
     public function addReplacement ($tag,$rep) { 
      $this->replaceArr[] = $tag; 
      $this->replacedArr[] = $rep; 
     } 
} 

所以我去我的生意,启动对象,然后调用

$myObjectCreatedEarlier->addReplacement("Something","SomethingElse"). 

$this->replaceArr有它内部的“东西”。

但是其他阵列$this->replacedArr里面没有“SomethingElse”,我不知道为什么。我做了几个基本的调试,如print_r'这两个阵列,确保$rep存在,甚至在代码中移动,但我找不到任何错误。与大多数问题一样,您只需要其他人查看您所做的错误,那么您们中的任何人都可以提供帮助吗?

编辑

发现错误,那是我的一个拼写错误。感谢您试图帮助人们,但是如果没有我一字不贴地粘贴我的课程,这是不可能弄明白的。

很高兴这不是某种错误。

+1

您调用它的方式会给您一个语法错误。 Something后有一个报价缺失。除此之外,我没有看到调用语句中对类的引用。 – Dan

+0

哦,对不起,这只是提取示例代码,因为我无法发布整个班级。尽管这被称为普通班。如果编辑该帖子是由其他格式错误的其他人修改的,那么我可以编辑它。 –

+1

我复制了你的代码并添加了一个方法来输出值,它对我来说工作得很好。你如何检查数组的内容?做一些类似于'$ myObjectCreatedEarlier-> output();'的方法,并在该方法中做两个数组的var_dump。 – Dan

回答

1

如果您使用私有属性对象print_r(),它可能不会显示这些私有属性的值。尝试在类本身中加入一个调试函数print_r()本身,并在别处调用该方法。

从您显示的代码中,没有任何明显的错误...

相关问题