簡體   English   中英

PHP:在頁面之間使用方法傳遞對象

[英]PHP: Passing Objects with methods between pages

關於在頁面之間傳遞PHP類對象的現有問題很多,主要是通過序列化,壓縮等方式進行。但是,對象的方法無法傳遞。

我有一堂課說:

class Car
 {
   public function BrakeStatus()
   {
     //Fetch some sql data and return status of brakes
   }
 }

在頁面“ page1.php”中

<?php
$car = new Car;
$link = "<a href='page2.php?car=".$car."'>Click here</a>";
echo $link;
?>

在頁面“ page2.php”中

<?php
$car2=$_REQUEST('car');
$car2_brakes=$car2->BrakeStatus();
?>

有沒有辦法使這項工作?

因此,我只看到一種方法:Car.php:

<?php
class Car
{
    public function BrakeStatus()
    {
        echo 'Test string!';
    }
}

page1.php:

<?php
$carFilePath = 'Car.php';
require($carFilePath);
$car = new Car;

$carString = serialize($car);
$carImplementation = str_replace('<?php', '', file_get_contents('Car.php'));
$data = [
    'carString' => $carString,
    'carImplementation' => $carImplementation,
];
$JSONData = json_encode($data);
$link = "<a href='page2.php?car=".$JSONData."'>Click here</a>";
echo $link;

page2.php:

<?php
$carJSON=$_REQUEST('car');
$data = json_decode($carJSON);
eval($data->carImplementation);
$car = unserialize($data->carString);
$car->BrakeStatus();

但是,如果您需要這樣做,則會遇到體系結構問題。 請閱讀Grady Booch( https://en.wikipedia.org/wiki/Grady_Booch )的“面向對象的分析和應用程序設計”。 這與面向對象編程(隱藏實現)的概念相反。

因此,仿佛您真的在想突然應用它,請加密$ JSONData異步密鑰!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM