     1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

    <?php
    /**
     * @type Sentence
     *
     * A sentence ready data
     * structure.
     * remove all unprintable characters
     */

    namespace Catapult;
    final class Sentence extends Types {
        /**
         * Form the sentence
         * object version
         */
        public function __construct($sentence)
        {
          $this->sentence = $sentence;
        }

        /**
         * Form a sentence. Only
         * allow printable characters for
         * percision.
         *
         * @param sentence: sentence to speak
         * @param singular return as array or scalar
         */
        public function Make($sentence, $singular=false)
        {
          if (!($singular)) {
            return array(
              "sentence" => $sentence
            );
          }

          return $sentence;
        }

        public function __toString()
        {
          return $this->Make($this->sentence, TRUE);
        }
    }