php oop
<?php namespace app\api\service; use app\request\Test; class TestService extends Test implements \JsonSerializable { private $a; private $b; /** * Doc constructor. */ public function __construct(){} /** * @return mixed */ public function getA() { return $this->a; } /** * @param mixed $a */ public function setA($a) { $this->a = $a; return $this; } /** * @return mixed */ public function getB() { return $this->b; } /** * @param mixed $b */ public function setB($b) { $this->b = $b; return $this; } /** * Specify data which should be serialized to JSON * @link https://php.net/manual/en/jsonserializable.jsonserialize.php * @return mixed data which can be serialized by <b>json_encode</b>, * which is a value of any type other than a resource. * @since 5.4.0 */ public function jsonSerialize() { $json = array(); foreach ($this as $key => $value) { if($value===null) { continue; } $json[$key] = $value; } return $json; }
function bulid(){
}
}
<?php namespace app\request; use ReflectionClass; abstract class Test { private $reqType; private $url; public function execute(){ try { $reflectionClass = new ReflectionClass($this); } catch (\ReflectionException $e) { } $build=$reflectionClass->getMethod("build"); $build->invoke($this); $paramStr=json_encode($this,JSON_UNESCAPED_SLASHES); if($paramStr=="[]"){ $paramStr='{}'; }
return $paramStr;
//todo return bb::aa($paramStr); } abstract function build(); }
$new = new TestService(); $new->setA(100); $new->setB(100); dd($new->execute());