0

我想在一个类中的两个静态函数之间共享一个对象,而无需传递参数。例如,在我的类中,static function ProfileRegistration()它必须通过参数获取一个对象,我想调用另一个函数Format()来处理同一个对象。我想调用再次传递的Format()函数withoutobject

我不知道在函数之间共享值,所以我将它作为参数传递。如何避免?

class SMSList {

     var $objLogin;

     public function __construct()

     {


     }

     public static  function ProfileRegistration($objLogin)
     {

         $objself=new self();
         $objself->objLogin=$objLogin;

         $obj=new SMSMessage();

         if($obj->profile_registration_sms_status==1)
         {
             $msg=self::Format($obj->profile_registration_sms,$objself-objLogin);

         return SMS::sendSMS($objself->objLogin->mobile,$msg);
         }
     }

     public  function Format($message,$objLogin)

     {
         $message=str_replace('#NAME#',$objLogin->contact_person,$message);
         $message=str_replace('#COMP_NAME#',$objLogin->companyname,$message );
         $message=str_replace('#MOBILE#',$objLogin->mobile,$message);
         $message=str_replace('#CITY#',$objLogin->city,$message);
         $message=str_replace('#EMAILID#',$objLogin->emailid,$message);
         return $message;
     }

}
4

1 回答 1

0

使用静态变量解决这个问题。代码示例在这里

class SMSList {
    public static $objLogin;
    public function __construct()
    {

    }

    public static  function ProfileRegistration($objLogin)
    {

        self::$objLogin=$objLogin;
        $obj=new SMSMessage();

        if($obj->profile_registration_sms_status==1)
        {
            $msg=self::Format($obj->profile_registration_sms);

            return SMS::sendSMS( self::$objLogin->mobile,$msg);
        }
    } public  function Format($message)
    {
        $message=str_replace('#NAME#',self::$objLogin->contact_person,$message);
        $message=str_replace('#COMP_NAME#',self::$objLogin->companyname,$message );
        $message=str_replace('#MOBILE#',self::$objLogin->mobile,$message);
        $message=str_replace('#CITY#',self::$objLogin->city,$message);
        $message=str_replace('#EMAILID#',self::$objLogin->emailid,$message);
        return $message;
    }


}
于 2016-06-10T04:50:38.427 回答