]> Kevux Git Server - koopa/commitdiff
Feature: t_base_return class objects may now be used directly as strings
authorKevin Day <thekevinday@gmail.com>
Sun, 6 Jan 2019 01:27:41 +0000 (19:27 -0600)
committerKevin Day <thekevinday@gmail.com>
Sun, 6 Jan 2019 01:27:41 +0000 (19:27 -0600)
By utilizing __toString(), all classes using t_base_return can now be directly used as a string.
This saves the effort of writing $my_class->get_value() or $my_class->get_value_exact().

This directly returns the private value as a string, which is probably faster than returning an object and then calling a function to convert.

Complex types, such as array, object, or resource, or converted to an empty string and must still be handled via function calls.

common/base/classes/base_return.php
common/base/traits/base_return.php

index dc249b78469071fcc46cbd41c31d04ad19c9546d..4ec8f76742e1a3f30e6b77510318087c2cec72ce 100644 (file)
@@ -841,6 +841,18 @@ class c_base_return_array extends c_base_return_value {
   }
 
   /**
+   * Provide to string object override.
+   *
+   * @return string
+   *   An empty string.
+   *
+   * @see: http://php.net/manual/en/language.oop5.magic.php@object.tostring
+   */
+  public function __toString() {
+    return "";
+  }
+
+  /**
    * Assign the value.
    *
    * @param array $value
@@ -1213,6 +1225,18 @@ class c_base_return_object extends c_base_return_value {
   }
 
   /**
+   * Provide to string object override.
+   *
+   * @return string
+   *   An empty string.
+   *
+   * @see: http://php.net/manual/en/language.oop5.magic.php@object.tostring
+   */
+  public function __toString() {
+    return "";
+  }
+
+  /**
    * Assign the value.
    *
    * @param object $value
@@ -1273,6 +1297,18 @@ class c_base_return_resource extends c_base_return_value {
   }
 
   /**
+   * Provide to string object override.
+   *
+   * @return string
+   *   An empty string.
+   *
+   * @see: http://php.net/manual/en/language.oop5.magic.php@object.tostring
+   */
+  public function __toString() {
+    return "";
+  }
+
+  /**
    * Assign the value.
    *
    * @param resource $value
index 0ee036152ed5001c91b45184d96a1d68e9ca43f5..bf829dd70e24ae061b27d3db2454a6a2d64bab10 100644 (file)
@@ -22,6 +22,18 @@ trait t_base_return_value {
   protected $value;
 
   /**
+   * Provide to string object override.
+   *
+   * @return string
+   *   The string representation of the value contained in this object.
+   *
+   * @see: http://php.net/manual/en/language.oop5.magic.php@object.tostring
+   */
+  public function __toString() {
+    return strval($this->value);
+  }
+
+  /**
    * Assign the value.
    *
    * If the value is an object, then this should create a copy of the object (a clone).