method_exists返回false

时间:2015-10-10 21:32:07

标签: php oop methods

我是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/>";
}

?>

谢谢你看看

2 个答案:

答案 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进行呼叫,请检查呼叫者类别。