为返回的数据添加顺序号

时间:2014-05-13 17:57:10

标签: php function loops return

Newb在这里尝试新事物(对我而言)

我正在尝试:我正在尝试创建一个与每次返回迭代的创意编号,因此巨型kaiju(奇怪的野兽 - 又名哥斯拉和朋友)的事件报告具有以编程方式创建的个人案例编号。这意味着返回一个将是#1,返回两个将是#2,返回3将是#3等人。

我做了什么:我试图把我的int放在开头,中间,结尾,返回之后等等,但不管我把它放在哪里,我总是得到相同的数字(12 )。我已经阅读了关于在php.net上迭代的内容,并查看了堆栈溢出和其他地方,但我没有找到可以内化/理解足以复制的内容。

function __toString(){
$kID = 1;//kaiju incident number

    $myReturn = "<p> Incident ID: kID" . $kID ;
    $kID++; //not iterating thru
    $myReturn .= $kID ;

    $myReturn .= " | Massive Terrestial Organsim Reported: " . $this->movTitle . "   " ;
    $myReturn .= " | Location Name: " . $this->entWhat. " ";
    $myReturn .= " | Severity of Incident Reported: " . $this->movRating . "</p>" ;

    return $myReturn;

2 个答案:

答案 0 :(得分:3)

每次调用函数时,

$kID都设置为1。设为static,以便在函数调用中保留它的值:

static $kID = 1;//kaiju incident number

此外:

$myReturn = "<p> Incident ID: kID" . $kID;
$kID++;

答案 1 :(得分:2)

现在每次调用函数时,此代码都会执行:

$kID = 1
$myReturn = $kID;
$kID++; 
$myReturn .= $kID ;

因此$kID被设置为1,然后是2,因此输出中的12

您需要在功能之外定义$kID。也许像这样重写:

function __toString(&$kID){
  $myReturn = "<p> Incident ID: kID" . $kID++ ;