PHP类属性变量能否拼接?如何简化代码输出类对象属性与运算结果
问题解答
- 类的属性变量可以正常拼接,PHP中字符串拼接使用
.运算符,公共类属性的用法和普通变量完全一致,可直接取出参与拼接、运算等操作。 - 通过类对象打印属性变量直接使用
$对象实例->属性名语法即可,和你现有代码中的写法一致。
优化实现方案
你原来的代码已经可以实现效果,我们可以通过增加构造方法、封装格式化输出逻辑,让代码更简洁易维护:
优化后的类代码
class Calculation { // 类属性 public $a; public $b; public $c; // 构造方法:实例化时直接传入运算参数,不用单独赋值 public function __construct(int $a, int $b) { $this->a = $a; $this->b = $b; } // 求和 public function sum() { $this->c = $this->a + $this->b; return $this->c; } // 求差 public function sub() { $this->c = $this->a - $this->b; return $this->c; } // 求积 public function mul() { $this->c = $this->a * $this->b; return $this->c; } // 封装求和结果的格式化输出逻辑 public function getSumFormatStr(): string { return "Sum value of C1={$this->a}+{$this->b}=" . $this->sum(); } }
调用代码(一行实现输出)
$obj1 = new Calculation(10, 20); echo $obj1->getSumFormatStr() . "<hr>";
运行后直接输出你需要的效果:
Sum value of C1=10+20=30
如果不想额外封装输出方法,也可以直接用字符串插值简化多行echo的写法:
$obj1 = new Calculation(10, 20); echo "Sum value of C1={$obj1->a}+{$obj1->b}=" . $obj1->sum() . "<hr>";
内容的提问来源于stack exchange,提问作者samar script
相关产品推荐
相关产品推荐

