小编Sin*_*ine的帖子

类构造函数干扰另一类

本质上,我只是创建两个类,其中一个类(在本例中为A类)在另一个类(在本例中为B类)中运行一个函数,以从数据库中获取一些信息.

但是,当B_runtime()实际调用数据库时,我得到了错误Cannot access protected property A::$db.

我不明白的是,尽管我__construct在两个类中都有两个,但PDO语句在使用A类数据库连接方面非常持久.

我确信这与我B_runtime()在A类中运行的事实有关,因为如果我从A类之外调用它,就不会发生这种情况.

我知道我可以简单地将protected $db;A类更改为公共变量,但是,我真的很好奇如何解决这个问题.

ob_start();
include('/config.php');
ob_end_clean();

$A = new A($db);
$B = new B($db);

echo $A->A_runtime();

class A{
    protected $db;
    public function __construct($db){
       $this->db = $db;
    }
    public function A_runtime(){
        return B::B_runtime();      
    }
}

class B{
    protected $db;
    public function __construct($db){
       $this->db = $db;
    }
    public function B_runtime(){
        $preparedStatement = $this->db->prepare('SELECT * FROM z_mod_html WHERE ModuleLink = :moduleid LIMIT 1');
        $preparedStatement->execute(array(':moduleid' => '1')); …
Run Code Online (Sandbox Code Playgroud)

php variables constructor class function

5
推荐指数
1
解决办法
118
查看次数

如果在URL中请求.php扩展名,则重定向到404

我目前通过使用mod_rewrite使我的所有页面都没有.php扩展.如:

www.mywebsite.com/noextension
Run Code Online (Sandbox Code Playgroud)

但是,如果他们决定将.php扩展名添加到这样的网址,我将如何将用户重定向到404页面?

www.mywebsite.com/noextension.php
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的htaccess看起来像这样:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([a-zA-Z0-9]+)(/)?$ $1.php
RewriteRule ^forums/([a-zA-Z0-9]+)(/)?$ forums.php?category=$1 [NC]
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情RewriteRule \.php$ - [R=404],然而,我去的每一页只有404.我想我可能不得不使用像REQUEST_URI这样的东西去做我要问的事情.

你们建议我添加什么?谢谢.

php .htaccess redirect

3
推荐指数
1
解决办法
1948
查看次数

标签 统计

php ×2

.htaccess ×1

class ×1

constructor ×1

function ×1

redirect ×1

variables ×1