严格标准:非静态方法

时间:2013-12-01 11:03:31

标签: php

我在这里遇到了一个问题,我正在努力让我的脚本更好,但是我收到了这个错误:

Strict Standards: Non-static method DB::query() should not be called statically in C:\xampp\htdocs\Checkin\content\news_index.php on line 2

有些人已经告诉我,我使用的是静态和非静态的错误方法,但我真的没有得到这个错误。

错误是几行,2,3和9。

这是我的news_index.php:

<?php
$pickQuery = DB::Query("SELECT * FROM `cms_picks` WHERE `enabled` = 'true' ORDER BY `id` DESC LIMIT 6");
if(DB::num_rows($pickQuery) > 0){
?>

                <div class="heading blue">Wat gebeurt er in <?php echo $hotelnaam; ?>? </div>
                <div class="inner news_picks">
                    <?php
                    while($pickFetch = DB::fetch_array($pickQuery)){
                    ?>
                    <div class="pick">
                        <a class="url" href="<?php echo $pickFetch['url']; ?>" ><div class="image" style="background: url('<?php echo htmlentities($pickFetch['image']); ?>') no-repeat; height: 60px; width: 160px; float: left; border-radius: 7px; border: 2px solid #ADADAD;  "></div></a>
                        <div class="text" >
                            <a class="url" style="font-size: 15px;" href="<?php echo $pickFetch['url']; ?>"><b><?php echo htmlentities($pickFetch['title']); ?></b></a><br />
                            <?php echo htmlentities($pickFetch['desc']); ?>
                        </div>
                        <div style="clear: both;"></div>
                    </div>
                    <?php
                    }
                    ?>

                </div>

<?php } ?>

我希望有人能帮忙......

韦斯利

2 个答案:

答案 0 :(得分:0)

我不确定您使用的是哪个库,但错误似乎很清楚:您不应该通过其类名调用DB::Query,而应首​​先创建一个对象:

$db = new DB( /* whatever parameters the constructor takes, see documentation */ );
// ...
$pickQuery = $db->query("SELECT ... ");

答案 1 :(得分:0)

如果查看DB类,则会看到函数Query被定义为成员函数或实例方法。在类的实例上调用成员函数。在你的情况下,它将类似于:

$db = new DB();
$db->Query($sql);

但是,您静态调用Query,即DB::Query($sql)。不同之处在于,使用箭头->运算符在对象上调用实例变量和方法,并使用类上的范围分辨率::运算符访问静态函数和变量。

注意:此处使用的$sql是您查询的占位符。

如果您的Query函数在static function Query($sql)类中被定义为DB,那么您的代码就不会抱怨了。