我有一個函式可以做一些事情(它包含在我的檔案 php 中)。該函式應該需要一個 php 檔案傳遞??引數,但它失敗了,我無法繼續......
遵循函式的初始代碼:
<?php
function write_pdf($orientation, $initrow, $rowsperpage)
{
ob_start();
require "./mypage.php?orient=$orientation&init=$initrow&nrrows=$rowsperpage";
$html = ob_get_clean();
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
...
...
“mypage.php”回傳錯誤:
注意:未定義變數:C:\wamp\www\htdocs\site\mypage.php 中第 8 行的方向
注意:未定義變數:C:\wamp\www\htdocs\site\mypage.php 中第 8 行的 initrow
注意:未定義變數:rowsperpage in C:\wamp\www\htdocs\site\mypage.php 第 8 行
有沒有辦法做這樣的事情?謝謝!
uj5u.com熱心網友回復:
您不需要傳遞引數,因為當您需要檔案時,就像它在函式內部的代碼一樣,因此在需要之前在函式中定義的任何變數都將存在并在您需要的檔案中定義。因此,您可以直接在所需檔案中使用變數$orientation、$initrow、$rowsperpage。
另一種非常丑陋的方法是在需要檔案之前將這些變數添加到 $_GET 中,假設您希望從 $_GET 獲取它們:
$_GET['orient'] = $orientation;
$_GET['init'] = $initrow;
$_GET['nrrows'] = $rowsperpage;
require './mypage.php';
我推薦的方法是將您包含的檔案代碼封裝在一個函式中,這樣您就可以通過引數呼叫它。甚至創建一個類,如果包含的代碼很大并且可以在方法中切片。
uj5u.com熱心網友回復:
你可以這樣做。
to_include.php
<?php
$orient = isset($_GET["orient"]) ? $_GET["orient"] : "portrait";
$init = isset($_GET["init"]) ? $_GET["init"] : 1;
echo "<pre>";
var_dump(
[
"orient"=>$orient,
"init"=>$init
]
);
echo "</pre>";
主檔案
<?php
function include_get_params($file) {
$main = explode('?', $file);
$parts = explode('&', $main[1]);
foreach($parts as $part) {
parse_str($part, $output);
foreach ($output as $key => $value) {
$_GET[$key] = $value;
}
}
include($main[0]);
}
include_get_params("to_include.php?orient=landscape&init=100");
方法include_get_params,首先將字串的主要部分分開,將檔案與引數分開,通過 ? 之后他把引數分塊,把這些都放在$_GET里面to_include,我們從$_GET中取出引數
我希望我幫助了你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/368968.html
