strlen($ query)-2的目的是什么?

时间:2015-04-25 07:37:13

标签: php substr strlen

我从谷歌那里得到了这个代码,它满足了我的要求,但我不理解这一行的含义:

substr($query,0,strlen($query)-2)

有人可以向我解释一下吗?

<?php
function insert($tablename, $parameter_order, $values)
{
    $query = "insert into $tablename (";
    foreach($parameter_order as $po)
    {
        $query .= $po.', ';
    }
    $query = substr($query,0,strlen($query)-2).') values (';
foreach($values as $v)
{
$query .= "'$v', ";
}
$query = substr($query,0,strlen($query)-2).');';
    return $this->makeQuery($query);
}
?>

2 个答案:

答案 0 :(得分:1)

该行会从$query中删除最后一个逗号和空格。这些字符已添加到foreach循环中,以便将$parameter_order的元素粘合在一起。

请注意,使用implode()函数通常可以更好地完成此标准任务:

$query = "insert into $tablename (" . implode (', ', $parameter_order) . ' ) values (';

答案 1 :(得分:1)

这些功能正是这样做的:

  

class Baap{ int h = 4; public int getH(){ System.out.println("Beta " + h); return h; } } class Beta extends Baap{ int h = 44; public int getH(){ System.out.println("Beta " + h); return h; } public static void main (String [] args) { Baap b = new Beta(); System.out.println(b.h + " " + b.getH()); } } 用于从另一个字符串生成指定长度的子字符串。

     

substr()将返回提供的字符串的长度。

代码strlen()substr($query,0,strlen($query)-2)循环中删除逗号空格