簡體   English   中英

PHP:如何在類外調用函數

[英]PHP: How to call function outside of class

我正在嘗試在我正在使用的網絡工具中實現一個“記錄器”,它基本上是一個如下所示的 php 文件:

<?php
function makePost($post) {
    $file = fopen("log.txt", "a") or die ("Unable to open file");

    $today = date("Y/m/d-h:i");
    fwrite($file, $today . "\n====================================");

    fwrite("\n" . $post);
    fwrite("\n====================================");

    fclose($file);
}

我試圖從“網絡工具”中的其他位置調用它,當我試圖從我為了處理數據庫而擁有的類中調用它時出現問題,並且當我嘗試調用上面的函數時似乎程序只是停在它的軌道上,其余的功能(和記錄器本身)沒有執行。

我嘗試從中調用記錄器的簡化類:

class handleAccounts {
    function loginValidation() {
        require_once("log.php");
        makePost("A login was attempted");

        // Some more code that isn't executed
    }
}

在第 8 行和第 9 行的 MakePost 函數中有錯誤。通過注釋第 8 行和第 9 行解決了這個問題。

 function makePost($post) { $file = fopen("log.txt", "a") or die ("Unable to open file"); $today = date("Y/m/dh:i"); fwrite($file, $today . "\\n===================================="); // fwrite("\\n" . $post); // fwrite("\\n===================================="); fclose($file); }

改成這樣

<?php
function makePost($post) {
  $today = date("Y/m/d-h:i");
  $sep = str_repeat‌​("=",20);
  $res = file_put_contents('log.txt',"$today\n$sep\‌​n$post\n$sep\n",FILE_A‌​PPEND);
  if(!$res){
    die ("Unable to open and write to file");
  }
}

<?php
require_once("log.php");
class handleAccounts {
 function loginValidation() {
    makePost("A login was attempted");
    // Some more code that isn't executed
 }
}

'log.txt'注意事項:例如,如果log.php/foo/bar/log.php下並且日志文件應該在/foo/log/log.txt下,您可以執行dirname(__FILE__).'/../log/log.txt'而不是'log.txt' ,因此您將始終寫入同一文件夾中的同一文件。

暫無
暫無

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

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