abstract class Service
{
}
trait PriceUilities{
// private static $taxrate = 17;
// public static function calulateTax(float $price) : float
// {
// return ((self::$taxrate / 100) * $price);
// }
function calculateTax(float $price):float {
return (($this->taxrate() / 100) * $price);
}
abstract function taxrate():float;
}
//class Test extends Service{
// use PriceUilities;
// function taxrate(): float
// {
// return 17;
// }
//}
//abstract class UtilityService extends Service{
class UtilityService extends Service{
// public $taxrate= 17;
//使用权限控制
//这个控制目的可以在一下层继承h时禁止访问
use PriceUilities{
PriceUilities::calculateTax as private;
}
private $price;
public function __construct(float $price)
{
$this->price = $price;
}
public function getTaxRate():float {
return 17;
}
public function getFinalPirce():float {
return ($this->price + $this->calculateTax($this->price));
}
// abstract function aaa():float ;
function taxrate(): float
{
return 17;
}
// function calculateTax(float $price): float
// {
// return (($this->taxrate / 100) * $price);
// }
}
class Test extends UtilityService {
function bbb(){
#$this->calculateTax(11); 无法访问
}
}
echo '---------'.PHP_EOL;
$u = new UtilityService(100);
echo $u->getFinalPirce();
echo '----------'.PHP_EOL;
#$o = new Test();
#echo $o->calculateTax(100); 无法访问
学习笔记 trait use
最新推荐文章于 2024-02-27 20:32:20 发布