public function readAll($len)
    {
        // return $this->read($len);

        $data = '';
        $got = 0;
        while (($got = TStringFuncFactory::create()->strlen($data)) < $len) {
            $data .= $this->read($len - $got);
        }

        return $data;
    }
public function readAll($len)
    {
        // return $this->read($len);

        $data = '';
        $got = 0;
        while (($got = TStringFuncFactory::create()->strlen($data)) < $len) {
            $data .= $this->read($len - $got);
        }

        return $data;
    }
public function readAll ( $ len ) { // return $this->read($len); $ data = '' ; $ got = 0 ; while ( ( $ got = TStringFuncFactory :: create ( ) -> strlen ( $ data ) ) < $ len ) { $ data .= $ this -> read ( $ len - $ got ) ; } return $ data ; }
Guarantees that the full amount of data is read.

@return string The data, of exact length
@throws TTransportException if cannot read data
Guarantees that the full amount of data is read .