我对这里定义的PHP类不是很满意:mysqli
我删除了一些内容以缩短它并在运行时得到一个解析错误。
<?php
function query($x)
{
if ($x > 8) {
return 'greater than eight!';
} else {
return true;
}
} else {
exit();
}
}
print query(7);
它与原始构造(我认为)相同,不是吗?当然除了签名和身体的方法。我之前没有遇到过if else else条款,它至少对我来说“感觉不错”至少在逻辑上是明智的。而且我的代码不会编译。也许你可以让我直截了当?
你有任何关于它如何使用的例子吗?
其次,从原始类 - $ resource变量在哪里或如何进入它?在什么上下文中对象会传递$ resource变量?
我的客户代码可能是:
$db = new MySQLi;
$db->query("SELECT * FROM my_table");
但我不知道$资源是如何发挥作用的?
答案 0 :(得分:0)
你有第二个其他构造,它应该看起来像:
if($x > 8) {
// your if(true) code
} else {
// your if(false) code
}
答案 1 :(得分:0)
有一个缺少if else的块,这里用**突出显示你得到解析器错误,因为你的代码有问题
<?php
final class MySQLi {
private $mysqli;
public function __construct($hostname, $username, $password, $database) {
$this->mysqli = new mysqli($hostname, $username, $password, $database);
if ($this->mysqli->connect_error) {
trigger_error('Error: Could not make a database link (' . $this->mysqli->connect_errno . ') ' . $this->mysqli->connect_error);
}
$this->mysqli->query("SET NAMES 'utf8'");
$this->mysqli->query("SET CHARACTER SET utf8");
$this->mysqli->query("SET CHARACTER_SET_CONNECTION=utf8");
$this->mysqli->query("SET SQL_MODE = ''");
}
public function query($sql) {
$result = $this->mysqli->query($sql);
if ($this->mysqli->errno) {
//$mysqli->errno
}
if (is_resource($resource)) {
$i = 0;
$data = array();
while ($row = $result->fetch_object()) {
$data[$i] = $row;
$i++;
}
$result->close();
$query = new stdClass();
$query->row = isset($data[0]) ? $data[0] : array();
$query->rows = $data;
$query->num_rows = $result->num_rows;
unset($data);
return $query;
} else {
return true;
}
***} else {
trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql);
exit();
}***
}
public function escape($value) {
return $this->mysqli->real_escape_string($value);
}
public function countAffected() {
return $this->mysqli->affected_rows;
}
public function getLastId() {
return $this->mysqli->insert_id;
}
public function __destruct() {
$this->mysqli->close();
}
}
?>
答案 2 :(得分:0)
我认为你正在尝试做一些与众不同的事情,但我希望这有助于解释如何将三个条件结合在一起。
function query($x) {
if ($x > 8) { // If $x is greater than 8
return 'greater than eight!';
} else if ($x < 8) { // If $x is lower than 8
return true;
} else {
return "The number is 8!";
}
}
print query(7);
答案 3 :(得分:0)
您的代码中缺少某些内容。如果你有人运行你的代码。
解析错误:语法错误,第8行意外的T_ELSE
所以你的功能应该如下所示
function query($x)
{
if ($x > 8)
{
//runs when $x value is greater than 8
return 'greater than eight!';
}
else
{
// if the condition didnt meet, according to my knowledge you should return false here
return true;
}
exit();
}
print query(7);
如果你想要一个if,
if (condition)
{
code to be executed if condition is true;
}
else if (condition)
{
code to be executed if condition is true;
}
else
{
code to be executed if condition is false;
}