1 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)你實(shí)例化變量時(shí),它們有一定的范圍,在這個(gè)范圍內(nèi)變量是已知的。我不明白你是如何加載文件的,但我假設(shè)你希望在訪問 index.php 時(shí)發(fā)生 transaction.php 的邏輯。要實(shí)現(xiàn)此目的,可以將 transaction.php 放入一個(gè)以 $errors 作為構(gòu)造函數(shù)變量的類,實(shí)例化它并調(diào)用該方法:
[交易.php]
class Transaction
{
? ? private $errors;
? ? public function _construct($errors)
? ? {
? ? ? ? ?$this->errors = $errors;
? ? }
? ? public function handleErrors()
? ? {
? ? ? ? if(is_array($errors))
? ? ? ? {
? ? ? ? ? ? echo 'something';
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? echo 'something';
? ? ? ? }
? ? }
}
[getTransaction.php]
Class Template
{
? ? public function __construct($template, $vars)
? ? {
? ? ? ? $this->template = $template;
? ? ? ? $this->vars = $vars;
? ? ? ? $transaction = new Transaction($vars); //instantiates your class
? ? ? ? $transaction->handleErrors(); //calls the method
? ? }
? ? public function __toString()
? ? {
? ? ? ? foreach ($this->vars as $name => $value)
? ? ? ? {
? ? ? ? ? ? $name = $value;
? ? ? ? }
? ? ? ? unset($name, $value);
? ? ? ? ob_start();
? ? ? ? require('templates/' . $this->template . '.php');
? ? ? ? return ob_get_clean();
? ? }
}
或者將 transaction.php 變成您在 index.php 中定義并調(diào)用的函數(shù): [index.php]
function checkTransaction()
{
? ? if(!empty($_POST['code']))
? ? {
? ? ? ? return true;
? ? }
? ? return [
? ? ? ? 'code' => false
? ? ];
}
function handleErrors($errors)
{
? ? if(is_array($errors))
? ? {
? ? ? ? echo 'something';
? ? }
? ? else
? ? {
? ? ? ? echo 'something';
? ? }
}
function renderTransactionResult($errors)
{
? ? $getTemplate = new Template('transaction', [
? ? ? ? 'errors' => $errors
? ? ]);
? ? echo $getTemplate;
}
$transactionid = htmlspecialchars($_POST['search']);
$transactionrows = $main->CheckNumRowsTransaction($transactionid);
if($transactionrows === 1)
{
? ? $errors = checkTransaction($_POST);
? ? renderTransactionResult($errors);
}
else
{
? ? $errors = [
? ? ? ? 'transaction' => false
? ? ];
? ? renderTransactionResult($errors);
}
請(qǐng)注意,我沒有審查您的功能、效率或安全性代碼,而只是制定了解決您的范圍問題的答案。
- 1 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報(bào)