在PHP类的函数之间共享变量
我的代码遵循以下结构:在PHP类的函数之间共享变量,php,Php,我的代码遵循以下结构: class someClass { private static $pay = 0; //something like this... public static function run() { if ($_SESSION['title']== "whatever" and $_SESSION['rank'] == "1") { self::$pay = 50000;
class someClass
{
private static $pay = 0;
//something like this...
public static function run()
{
if ($_SESSION['title']== "whatever" and $_SESSION['rank'] == "1")
{
self::$pay = 50000;
}
}
public static function benefits()
{
self::$pay = 50000 * 1.30;
benefits = self:$pay;
echo benefits;
}
}
然后我试着这样称呼福利
someClass::benefits();
但它总是设置为零。当满足if语句中的条件时,它不会更改
我在这里做的事情有没有明显的错误?我没有得到任何错误
感谢您的帮助。您使用的是
收益
就好像它是常量一样(php中不允许对其赋值)——您的意思可能是$benefits
。将代码更改为:
self::$pay = 50000 * 1.30;
$benefits = self::$pay;
echo $benefits;
您使用的是
benefits
,就好像它是常量一样(php中不允许对其赋值)——您可能指的是$benefits
。将代码更改为:
self::$pay = 50000 * 1.30;
$benefits = self::$pay;
echo $benefits;
我真的不认为您希望
从该类函数中回显值。我强烈推荐return
ing then。然后如果你立即回显它们,很好,但你不应该像函数那样回显。如果不了解这是如何使用的,那将是我的第一个猜测。我真的不认为您希望从该类函数中回送值。我强烈推荐return
ing then。然后如果你立即回显它们,很好,但你不应该像函数那样回显。如果不知道这是如何使用的,那将是我的第一个猜测。在福利函数中,如果您打算将其用作局部变量,福利应为$benefits。在福利函数中,如果您打算将其用作局部变量,福利应为$benefits
public static function benefits()
{
self::$pay = 50000 * 1.30;
echo self::$pay;
}
应该是你要找的
应该是你想要的你必须改变
benefits = self:$pay;
到
你必须改变
benefits = self:$pay;
到
请尝试以下代码:
<?php
class someClass
{
private static $pay = 0;
//something like this...
public static function run()
{
if ($_SESSION['title']== "whatever" and $_SESSION['rank'] == "1")
{
self::$pay = 50000;
}
}
public static function benefits()
{
self::$pay = 50000 * 1.30;
$benefits = self::$pay;
return $benefits;
}
}
echo someClass::benefits();
?>
尝试以下代码:
<?php
class someClass
{
private static $pay = 0;
//something like this...
public static function run()
{
if ($_SESSION['title']== "whatever" and $_SESSION['rank'] == "1")
{
self::$pay = 50000;
}
}
public static function benefits()
{
self::$pay = 50000 * 1.30;
$benefits = self::$pay;
return $benefits;
}
}
echo someClass::benefits();
?>
$benefits=self::$pay代码>带有2个冒号@我知道这是个例外,但它仍然是错的。如果这个答案被认为是正确的,那么这些错误应该被删除。另外,如果之前执行过run
,也没有关系,因为在第一行中,他用一个常量表达式覆盖了$pay
。@clentfort True。我不认为OP确切知道他们在做什么,因为很多代码都没有意义。他说,“当满足if语句中的条件时,它不会改变。”这意味着if
应该是计算中的一个相关因素。我不知道如何理解代码了。$benefits=self::$pay代码>带有2个冒号@我知道这是个例外,但它仍然是错的。如果这个答案被认为是正确的,那么这些错误应该被删除。另外,如果之前执行过run
,也没有关系,因为在第一行中,他用一个常量表达式覆盖了$pay
。@clentfort True。我不认为OP确切知道他们在做什么,因为很多代码都没有意义。他说,“当满足if语句中的条件时,它不会改变。”这意味着if
应该是计算中的一个相关因素。我不知道如何理解代码了。你确定这行:benefits=self:$pay代码>?这应该会产生致命错误,如果不是打字错误,就不会产生任何错误。最好是您向我们提供真实的代码,而不是有点类似但充满其他错误的代码。您确定这一行:benefits=self:$pay代码>?这应该会产生致命错误,如果不是打字错误,就不可能产生任何错误。如果您向我们提供真实的代码,而不是有点类似但充满其他错误的代码,那将是最好的。