我是php oop的新手,所以请耐心等待......
我在一个名为regions的类中有一个方法没有返回结果,当我使用method_exists
时它说它不存在。我看不出我做错了什么。
这是班级:
<?php
class SeniorMentor {
public $regions;
public function __toString() {
$output = '';
$output .= $this->uid . "<br>";
$output .= $this->fName . "<br>";
$output .= $this->lName . "<br>";
$output .= $this->email . "<br>";
return $output;
}
public function regions() {
$uid = 120;
include 'classes/con.php';
$stmt = $conn->prepare('SELECT region, region_id FROM regions WHERE uid = :uid');
$stmt->execute(array('uid' => $this->uid));
while($row2 = $stmt->fetchAll(PDO::FETCH_KEY_PAIR)) {
$regions = $row2;
return $regions;
}
}
}
这是调用它的脚本:
<?php
include 'classes/con.php';
include 'classes/SeniorMentor.php';
$uid = 120;
$seniorMentor = new SeniorMentor;
echo $seniorMentor->regions($uid);
var_dump(method_exists($seniormentor,'regions'));
$sq = $conn->query("SELECT * FROM primary_profile", PDO::FETCH_INTO, $seniorMentor);
while($row = $sq->fetch()) {
echo "$row <br/>";
}
?>
谢谢你看看
答案 0 :(得分:4)
在PHP中,变量是区分大小写的。这意味着$seniorMentor
和$seniormentor
是两个完全不同的变量。
var_dump(method_exists($seniormentor,'regions'));
应该是:
var_dump(method_exists($seniorMentor,'regions'));
在大多数情况下,我建议坚持使用标准naming convention来避免此问题。最常见的两个是Camel Case和Delimiter Case。
例如:Camel案例$seniorMentor
例如:分隔符案例$senior_mentor
答案 1 :(得分:0)
如果您要从trait
进行呼叫,请检查呼叫者类别。