Re: Class not returning value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for th reply Peter

i call this method on success
$this->sendSMS();

But i sorted the problem with this:
 public function getResult()
    {
        $this->processRequest();
     return $this->responseArray;

    }

"Peter Ford" <pete@xxxxxxxxxxxxx> wrote in message 
news:CF.A1.33335.D5CFC0B4@xxxxxxxxxxxxxxx
> Pieter du Toit wrote:
>> Hi
>>
>> This is my first class and it does not work, i do a return
>> $this->responseArray; with the public function getResult() method, but 
>> get
>> nothing. Can someone please help me.
>>
>> Thsi is how i create the object
>> $number = new Smsgate($cell_numbers, $message, "27823361602", "27");
>> $result = $number->getResult();
>>
>> Here is the code:
>> <?php
>>
>> /**
>>  *
>>  * @version 1.0
>>  * @copyright 2009
>>  */
>>
>> /**
>>  */
>> class Smsgate {
>>
>>     protected $number;
>>     protected $message;
>>     protected $sender_id;
>>     protected $tofind;
>>     private $result;
>>     /**
>>      * Constructor
>>      */
>>     function __construct($number = "", $message = "", $sender_id = "",
>> $tofind = "")
>>     {
>>
>>         $this->message = $message;
>>         $this->number = $number;
>>         $this->sender_id = $sender_id;
>>         $this->tofind = $tofind;
>>     }
>>
>>     protected function display ($result)
>>     {
>>         return $result;
>>     }
>>
>>     public function getResult()
>>     {
>>         return $this->processRequest();
>>
>>     }
>>     public function numberErrors()
>>     {
>>         return $this->errorResult;
>>     }
>>
>>     /**
>>      * Smsgate::checknumbers()
>>      *
>>      * @return array of correct and incorrect formatted numbers
>>      */
>>     private function processRequest()
>>     {
>>         echo "nou by numers";
>>         print_r($this->number);
>>         // check if the property is an array and add to new array for
>> sending
>>         if (is_array($this->number)) {
>>             // check for starting digits
>>             $this->result = "";
>>             // loop through numbers and check for errors
>>             foreach ($this->number as $this->val) {
>>
>>                 $this->position = strpos($this->val , $this->tofind);
>>
>>                 // number correct
>>                 if ($this->position === 0) {
>>                     echo "is integer <br/>";
>>                     if ($this->result != "") {
>>                         $this->result .= ",";
>>                     }
>>                     // create comma seperated numbers to send as bulk in
>> sendSMS method
>>                     $this->result .= $this->val; //infobip multiple
>> recipients must be seperated by comma
>>                     // create an array to use with responseStringExplode 
>> in
>> sendSMS method
>>                     $this->cellarray[] = $this->val;
>>                     echo "Result is " . $this->result . "<br>";
>>                 } else {
>>                     // numbers not in correct format
>>                     $this->errorResult[] = $this->val;
>>                 }
>>
>>             } //end foreach
>>    $this->sendSMS();
>>
>>         } else {
>>             $this->result = "Not ok";
>>          return $this->result;
>>         }
>>
>>     }
>>
>>     private function sendSMS()
>>     {
>>
>>         $this->smsUrl =
>> 'http://www.infobip.com/Addon/SMSService/SendSMS.aspx?user=xxxx&password=xxxx';
>>         $this->post_data = '&sender=' . $this->sender_id . '&SMSText=' .
>> urlencode($this->message) . '&IsFlash=0&GSM=' . $this->result;
>>         $this->sendData = $this->sendWithCurl($this->smsUrl,
>> $this->post_data);
>>         $this->responseStringExplode = explode("\n", $this->sendData);
>>
>>      $count=0;
>>         foreach ($this->responseStringExplode as $this->rvalue) {
>>           $this->responseArray[$this->rvalue] = 
>> ($this->cellarray[$count]);
>>           $count = ++$count;
>>         }
>>      return $this->responseArray;
>>     }
>>  private function sendWithCurl($url, $postData) {
>>   if (!is_resource($this->connection_handle)) {
>>    // Try to create one
>>    if (!$this->connection_handle = curl_init()) {
>>     trigger_error('Could not start new CURL instance');
>>     $this->error = true;
>>     return;
>>    }
>>   }
>>   curl_setopt($this->connection_handle, CURLOPT_URL, $url);
>>   curl_setopt ($this->connection_handle, CURLOPT_POST, 1);
>>   $post_fields = $postData;
>>   curl_setopt ($this->connection_handle, CURLOPT_POSTFIELDS, 
>> $post_fields);
>>   curl_setopt($this->connection_handle, CURLOPT_RETURNTRANSFER, 1);
>>   $this->response_string = curl_exec($this->connection_handle);
>>   curl_close($this->connection_handle);
>>   return $this->response_string;
>>  }
>> }
>>
>> ?>
>>
>>
>
>
> Based on a first scan of your code, it looks like the only return in
> processRequest() is inside the else block, so nothing is returned unless 
> the
> processing fails.
>
> -- 
> Peter Ford                              phone: 01580 893333
> Developer                               fax:   01580 893399
> Justcroft International Ltd., Staplehurst, Kent 



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux