お世話になってます。
PHPの__callStaticで定義された関数を呼ぶにあたり、
publicとprivateの中でそれぞれ呼ぼうとしたら「Cannot redeclare」の定義済みエラーになってしまいました。
しかし先に呼ばれる箇所にのみ書くようにすると、今度は2番目以降で「Call to a member function xxx on a non-object in」と、未定義扱いになってしまいます。。
PHPに詳しくないので基本的なミスかもしれませんが、
些細な点でもかまわないので、アドバイスいただきたく、お願いいたします。
情報が不足していたら追記します。取り急ぎ、対象のソースです。
php
1 2class libCrypt 3{ 4 public static function __callStatic($class, $args) 5 { 6 function exeClassAutoLoad($class) { 7 require_once("$class"."php"); 8 } 9 spl_autoload_register("exeClassAutoLoad"); 10 return new $class($args[0]); 11 } 12}
php
1 2class Point extends My_Controller 3{ 4 5 public function Hoge() 6 { 7 $objCrypt = libCrypt::Aes256Cbc('sec_key'); # Aes256Cbc が上の$classにあたります。 8 $strDeCrypt = $objCrypt->exeEnCrypt($fuga); #exeDeCrypt はAes256Cbcにpublicで定義しているメソッドです。 9 ・・・ 10 $this->_bar($data); 11 } 12 13 private function _bar($data) 14 { 15 $objCrypt = libCrypt::Aes256Cbc('sec_key'); # これを書くとPHP Fatal error: Cannot redeclare exeClassAutoLoad() 16 $strDeCrypt = $objCrypt->exeDeCrypt($data); # 上を書かないとここで Call to a member function exeDeCrypt() on a non-object 17 } 18

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/14 10:53
2015/12/14 10:59
2015/12/15 01:06
2015/12/16 05:49