我在 CakePHP 应用程序中实现了一个简单的回文问题来学习语言和框架。我一切正常,但有一点我无法解释的奇怪行为。
我有一个名为 Palindrome 的类,它有一个 __construct 方法,它接受一个参数,该参数应该始终是一个字符串。但是,我第一次实例化回文类的实例时,__construct 方法执行了两次,第一次传入的数组似乎是对该类的一些引用。我已经能够解决这个问题,但我不明白为什么会这样。任何人都可以启发我吗?这是我的代码:
类文件:
class Palindrome {
public $base_string = "";
public function __construct($passed_string)
{
print "==> $passed_string<br />";
if(!is_array($passed_string))
{
$this->base_string = trim($passed_string);
}
}
}
控制器:
class PalindromesController extends AppController
{
public $helpers = array('Html', 'Form');
public function index()
{
}
public function test_strings()
{
$string_array = explode("\n", $_POST["text_to_test"]);
$string_index = 0;
$palindrome_array = array();
while($string_index < count($string_array))
{
$my_string = $string_array[$string_index];
print "---> $lcString<br />";
array_push($palindrome_array, new $this->Palindrome(strtoupper($my_string)));
$string_index = $string_index + 1;
}
$this->set("palindrome_array", $palindrome_array);
}
}
输入 "foo\nbar\nbaz" 生成此输出 -
---> foo
==> Array
==> FOO
---> bar
==> BAR
---> baz
==> BAZ
这是带有 PHP 5.3.15 的 CakePHP 2.2.3。