1

对不起,伙计们,我正在网上阅读和搜索,但我找不到解决方案:(。如果你能帮助我:) 谢谢。

如果我硬编码位置,那么它工作得很好。我已经尝试过几种不同的方式......

PS我必须为练习创建某种图像库ajax​​页面:)我认为这个位置变量应该在单例/静态类中我猜。我还不能测试这个类,但我认为这只适用于第一个和最后一个图像总是:)(在java代码中这很容易做到:))。

错误: 注意:未定义变量:第 11 行 D:\Wamp\www\test\gethint.php 中的位置

<?php

class Index {
    private $position=1;

    public function next(){
        return $position++;;
    }

    public function prev(){
        return $position--;
    }

     public function reset(){
        $position=1;
        return $position;
    }
}

$action=$_REQUEST["action"];
    $index = 0;

if($action!=1){
    $index=Index::prev();
} else {
    $index=Index::next();
}

if($index < 1){
    $index=7;
}
if($index > 7){
    $index=1;
}

    $response="<img border=\"0\" src=\"".$index.".jpg\" alt=\"".$index."\" width=\"500\" height=\"334\">";

 echo $response;
 ?>
4

3 回答 3

0
class Index {
    private $position=1;

    public function next(){
        return $this->position++;
    }

    public function prev(){
        return $this->position--;
    }

     public function reset(){
        $this->position=1;
        return $this->position;
    }
}

您必须获取类变量,而不是局部变量;)

并且重置方法有效,因为您将局部变量设置为 1 然后返回它,在其他两种方法中 $position 变量都将是未定义的。

于 2013-02-28T09:36:40.603 回答
0

更改此行

return $position++;;

return $position++; // extra ;

并像这样访问类变量

$this->position++; // not $position

用于创建静态变量使用static关键字

private static $position=1;

用于访问静态变量使用

self::$position;

改变这个

if($action!=1){
    $index=Index::prev();
} else {
    $index=Index::next();
}

$in = new Index();
if($action!=1){
    $index= $in->prev();
} else {
    $index= $in->next();
}
于 2013-02-28T09:37:39.980 回答
0

$position++;;在下一个函数中拥有这个Index应该是的类,$position++;并且要访问你应该使用的类属性 $this。

所以用它作为$this->position++;

于 2013-02-28T09:38:39.153 回答