在 PHP 中列印到控制檯
本教程介紹瞭如何在 PHP 中寫入控制檯。
使用 PHP 中的 JavaScript console.log()
寫入控制檯
我們可以使用 PHP 中的一些 JavaScript 來寫入控制檯。我們在 JavaScript 中使用 console.log()
向控制檯寫入任何內容。我們可以使用 echo
語句從 PHP 中的 JavaScript 列印 console.log()
。如果我們使用 PHP 變數作為 console.log()
的引數,那麼變數的內容將被寫入控制檯。我們可以使用 is_array()
函式來檢查要列印的變數是否為陣列。如果元素是一個陣列,我們可以使用帶有 ,
作為分隔符的 implode()
函式將陣列元素連線成一個字串。
例如,建立一個函式 write_to_console()
,它接受一個引數 $data
。將 $data
變數儲存在新變數 $console
中。使用 is_array()
函式檢查變數 $console
是否是一個陣列。如果變數是一個陣列,則使用 implode()
函式並使用 ,
作為分隔符連線陣列元素。將值儲存在 $console
變數中。然後,在 script
標籤內,使用 console.log()
記錄 $console
變數。然後使用 echo
語句列印 JavaScript 程式碼。在函式外,使用兩個不同的引數呼叫 write_to_console()
函式。提供字串 Hello World!
作為第一個引數,陣列 [1,2,3]
作為第二個引數。
當我們進入網頁並從 Inspect Element
選項檢查控制檯時,我們可以看到寫入控制檯的資料。這樣,我們就可以在 PHP 中使用輔助函式寫入控制檯了。
示例程式碼:
<?php
function write_to_console($data) {
$console = $data;
if (is_array($console))
$console = implode(',', $console);
echo "<script>console.log('Console: " . $console . "' );</script>";
}
write_to_console("Hello World!");
write_to_console([1,2,3]);
?>
輸出:
Console: Hello World!
Console: 1,2,3
在 PHP 中使用 JavaScript console.log()
和 json_encode()
函式寫入控制檯
我們可以使用 json_encode()
函式和 JavaScript console.log()
在 PHP 中寫入控制檯。json_ecode()
函式將給定的關聯陣列轉換為 JSON 物件,並將索引陣列轉換為 JSON 陣列。我們可以對那些需要寫入控制檯的資料項使用該函式。
例如,建立一個帶有引數 $data
的函式 write_to_console()
。在函式內部,將 json_encode()
函式應用於 $data
變數並使用 console.log
記錄它。將整個表示式變成一個字串並將其儲存在 $console
變數中。然後,使用 sprintf()
函式將變數列印為 sprintf('<script>%s</script>', $console);
並將表示式分配給 $console
。最後,使用 echo
語句列印 $console
變數。在函式之外,在變數 $data
上建立關聯陣列並在變數 $days
上建立索引陣列。然後,使用這兩個變數作為引數呼叫 write_to_console()
函式。
關聯陣列寫成 JSON 物件,索引陣列寫成控制檯中的 JSON 陣列。這就是我們如何使用 json_encode()
函式在 PHP 中寫入控制檯。
示例程式碼:
<?php
function write_to_console($data) {
$console = 'console.log(' . json_encode($data) . ');';
$console = sprintf('<script>%s</script>', $console);
echo $console;
}
$data = [ 'foo' => 'bar' ];
$days = array("Sun", "Mon", "Tue");
write_to_console($data);
write_to_console($days);
?>
輸出:
Object { foo: "bar" }
Array(3) [ "Sun", "Mon", "Tue" ]
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn