<html>
//index.php
<form action="" method="post">
<label for="item">Item: </label>
<select name="item">
<option value="fruit tea">Fruit Tea</option>
<option value="strawberries">Strawberries</option>
<option value="coffee">Coffee</option>
</select><br />
<label for="qty">Qty: </label>
<input type="text" name="qty" />
<input type="submit" name="submit" value="submit" />
</form>
<?php
@$qty = $_POST['qty'];
@$item = $_POST['item'];
$co = new Checkout($pricing_rules);
print $co->scan($item). ' has been scanned '.$co->increment(). ' times';
?>
</html>
<?php
/**
* Description of Checkout
*
* @author cookie
*/
class Checkout {
private $pricing_rules = array();
private $pcode;
public $item;
public function __construct(array $pricing_rules) {
$this->pricing_rules = $pricing_rules;
}
public function scan($item) {
$this->increment();
return $item;
}
private function prod_code($pcode) {
$this->pcode = $pcode;
}
public function increment() {
static $count = 0;
$count++;
return $count;
}
public function total() {
}
}
?>
什么它应该做的事...递增计数器的变量,PHP
如果我点击提交按钮四次从下拉列表中选择的草莓说。脚本应该打印出到屏幕上:
草莓已经被扫描1次
草莓已经被扫描2次
草莓已经被扫描3次
草莓已经被扫描的4倍
等....
随着$count
跟踪增量通货膨胀。
其实际作用:
它打印:
草莓已扫描2次,无论多少次,我按提交。并在那里停下来。我在这里错过了一些东西。
我看到它在做什么 - 在网页加载时,两个调用递增()发生过这条线:
print $co->scan($item). ' has been scanned '.$co->increment(). ' times';
我想:
if($_SERVER['REQUEST_METHOD'] == 'POST') $co->increment();
也,这将增加$计数一个,但停在那里。我挣扎有点用这个..
帮助
感谢。我知道$ _SESSION,尽管不在这个(OOP)范围内。我想这一切都归结为HTTP,它是一个无状态协议。 – cookie
@ArewrewCookson'$ _SESSION'是一个超全球的,所以只要你初始化它就可以在任何范围内使用。 –