设置对象属性时,PHP运行函数/逻辑

乔纳森·克拉克(Jonathan Clark)

每次设置PHP对象属性时,我都希望同一对象的另一个属性为该值的20%,或交替放置;设置NetValue时,我想计算另一个属性的20%的增值税。

在C#中,它将类似于:

public class Product
{
    public decimal VAT { get; set; }
    private decimal _NetValue;
    public decimal NetValue { get { return _NetValue; } set { _NetValue = value; this.VAT = (value * 0.2M); } }
}

回到PHP,当我这样做时:

$product = new Product();
$product->NetValue = 10;
echo $product->VAT;

它应该输出:2

我如何实现这一目标,因为您只能在PHP中将常量设置为对象属性。是否可以?我看不到类似问题中提到的如何在构造函数中放入任何内容。

亚历山大·波洛莫多夫

尝试使用魔术方法,尤其是__set__get像这样的东西:

<?php

class Product
{
    private $NetValue;
    private $VAT;

    public function __set($name, $value)
    {
        if (property_exists($this, $name)) {
            if ($name == 'NetValue') {
                $this->VAT = 0.2 * $value;
            }
            $this->$name = $value;
        }
    }

    public function __get($name)
    {
        if (property_exists($this, $name)) {
            return $this->$name;
        }
    }
}

$product = new Product();
$product->NetValue = 10;

echo($product->VAT);

输出将是:

2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

定义对象属性时无法运行函数?

来自分类Dev

如何在对象上定义函数并仍然能够运行它来设置初始对象属性

来自分类Dev

PHP动态设置对象属性

来自分类Dev

运行时错误 1004 设置公式属性时应用程序定义或对象定义的错误

来自分类Dev

在业务逻辑中设置时,属性不会更新

来自分类Dev

仅当目标对象存在于源对象中时才在目标对象上设置属性,使用辅助函数

来自分类Dev

尝试在构造函数中设置类属性时,用户对象返回空

来自分类Dev

运行函数时如何设置标签文本?

来自分类Dev

运行函数时如何设置标签文本?

来自分类Dev

在PHP对象动态属性上设置值

来自分类Dev

PHP:在foreach循环内设置对象属性

来自分类Dev

从NSDictionary设置对象的属性时使用与属性名称不同的键

来自分类Dev

在加载对象/创建对象时设置基类属性值

来自分类Dev

定义此函数时如何设置函数的属性?

来自分类Dev

对象传递给函数时对象属性丢失

来自分类Dev

在提交表单时传递并运行PHP函数

来自分类Dev

使用map和setattr函数动态设置对象属性

来自分类Dev

对象的属性设置为本地函数调用,错误的做法?

来自分类Dev

如何在对象构造期间在函数中设置属性?

来自分类Dev

C ++:用作逻辑值时如何返回对象的设置状态

来自分类Dev

运行for循环时,ResultSet对象没有属性“ find”

来自分类Dev

致命错误:当我尝试运行php时,会在非对象上调用成员函数fetch_assoc()

来自分类Dev

设置属性时可以在Javascript对象内编写if语句吗?

来自分类Dev

设置对象的DataSource属性时,何时使用类型与实例?

来自分类Dev

在设置javascript对象属性值时感到困惑

来自分类Dev

休眠-为对象设置属性时避免重复查询

来自分类Dev

在ibatis的结果对象上设置属性时出错

来自分类Dev

运行函数时无法读取未定义的属性“setState”

来自分类Dev

调用函数时无法将属性'innerHTML'设置为null

Related 相关文章

  1. 1

    定义对象属性时无法运行函数?

  2. 2

    如何在对象上定义函数并仍然能够运行它来设置初始对象属性

  3. 3

    PHP动态设置对象属性

  4. 4

    运行时错误 1004 设置公式属性时应用程序定义或对象定义的错误

  5. 5

    在业务逻辑中设置时,属性不会更新

  6. 6

    仅当目标对象存在于源对象中时才在目标对象上设置属性,使用辅助函数

  7. 7

    尝试在构造函数中设置类属性时,用户对象返回空

  8. 8

    运行函数时如何设置标签文本?

  9. 9

    运行函数时如何设置标签文本?

  10. 10

    在PHP对象动态属性上设置值

  11. 11

    PHP:在foreach循环内设置对象属性

  12. 12

    从NSDictionary设置对象的属性时使用与属性名称不同的键

  13. 13

    在加载对象/创建对象时设置基类属性值

  14. 14

    定义此函数时如何设置函数的属性?

  15. 15

    对象传递给函数时对象属性丢失

  16. 16

    在提交表单时传递并运行PHP函数

  17. 17

    使用map和setattr函数动态设置对象属性

  18. 18

    对象的属性设置为本地函数调用,错误的做法?

  19. 19

    如何在对象构造期间在函数中设置属性?

  20. 20

    C ++:用作逻辑值时如何返回对象的设置状态

  21. 21

    运行for循环时,ResultSet对象没有属性“ find”

  22. 22

    致命错误:当我尝试运行php时,会在非对象上调用成员函数fetch_assoc()

  23. 23

    设置属性时可以在Javascript对象内编写if语句吗?

  24. 24

    设置对象的DataSource属性时,何时使用类型与实例?

  25. 25

    在设置javascript对象属性值时感到困惑

  26. 26

    休眠-为对象设置属性时避免重复查询

  27. 27

    在ibatis的结果对象上设置属性时出错

  28. 28

    运行函数时无法读取未定义的属性“setState”

  29. 29

    调用函数时无法将属性'innerHTML'设置为null

热门标签

归档