可选参数的空检查失败

时间:2011-11-05 21:10:59

标签: php string parameters

我在单例类中实现了一个带有可选参数的函数。

private function MyFunction($Name = "")
{

$localCopy = $Name;

//this check fails, EMPTY is printed!
if (empty($Name))
  echo "EMPTY";
else
  echo "NOT EMPTY";

//this is working, NOT EMPTY is printed
if (empty($localCopy))
  echo "EMPTY";
else
  echo "NOT EMPTY";

}

此函数由同一类中的另一个函数调用。

public function OtherFunction($Name = '')
{
   self::MyFunction($Name);
}

从外部调用OtherFunction

OtherFunction("Hello");

为什么空检查仅适用于本地副本? 有人能解释一下吗??

2 个答案:

答案 0 :(得分:0)

没有。两个变量

$Name

$localCopy

不应该是可以区分的。两者都指向相同的东西'。

此外,$localCopy通常不是副本,只是$name表示的第二个名称。

答案 1 :(得分:0)

我已经解决了这个问题。该死!!

我在代码中使用了$ Name和$ name的混合。两个不同的变量! 使用了未分配的变量....

来自C / C ++ / C#的人真是个丑陋的东西:(现在警告,没有错误....:)