多种可能性时正确的返回值

时间:2011-10-18 15:02:24

标签: php coding-style

如果您在类中有一个函数,例如:

public function insertItemToTable($item){
   $sql = query("insert to table {$item}");
   $insertId = sql_inserted_id();
}

你会回来哪个项目?

  1. 您是否会为该函数返回true / false并将类变量设置为插入的ID(例如$this->insertedItem = sql_insert_id()
  2. 返回插入ID的值

1 个答案:

答案 0 :(得分:1)

在您的示例中,您可以同时执行这两项操作。

<?php
public function insertItemToTable($item){
   if ($sql = query("insert to table {$item}")) {
       return sql_inserted_id();
   }
   return false;
}

在代码中测试它很容易:

<?php
if (false !== ($id = $obj->insertItemToTable($item)) {
    // it was inserted, $id is the new id
} else {
    // it failed and returned false
}

这是人们使用的常见模式,例如

<?php
if ($r = mysql_query('SELECT * FROM mytable')) {
    while ($rs = mysql_fetch_array($r)) {
        //....
    }
}

最终,这是一种偏好,而且没有一种正确的方法可以做到这一点。