PHP 模板字串

Sheeraz Gul 2023年1月30日
  1. 在 PHP 中使用 echo 關鍵字生成模板字串
  2. 使用 PHP strstr() 生成模板字串
  3. 在 PHP 中使用 str_replace() 生成模板字串
  4. 在 PHP 中建立我們的函式以生成模板字串
PHP 模板字串

模板字串是動態字串。假設你有一個名稱和任務列表,並且你希望將每個名稱和任務名稱一個一個地列印在一個字串中。

你可以設定一個模板字串,然後將列表一張一張列印出來。

Python 有一個內建函式 Template(),它將帶有變數的字串轉換為一個字串。

讓我們看看它是如何在 PHP 中完成的。

在 PHP 中使用 echo 關鍵字生成模板字串

生成模板字串最簡單的方法是使用 php 關鍵字 echo,我們可以將不同的變數放在字串的任何位置並列印出來。

<?php
$name = "Jack";
$last_name= "Enfield";
$job = "Software Engineer";
$company = "Microsoft";
echo "Employee name is {$name} {$last_name}, he is a {$job} at {$company}.";
?>

上面的程式碼使用給定變數的 namelast namejobcompany 生成一個模板字串。

輸出:

Employee name is Jack Enfield, he is a Software Engineer at Microsoft.

我們可以將變數放在具有多個值的陣列中,並設定 foreach 迴圈和條件以列印具有不同值的多個模板字串。

使用 PHP strstr() 生成模板字串

PHP 有一個內建函式 strstr(),它生成一個模板字串。它有兩個引數,一個是模板字串,另一個是帶值的陣列。

<?php
$output_string = 'Employee name is $name $last_name, he is a $job at $company.';

$values = array( '$name' => 'Jack', '$last_name' => 'Enfield', '$job' => 'Software Engineer', '$company' => 'Microsoft');

echo strtr($output_string, $values);
?>

上面程式碼的輸出將是包含陣列值的字串。

輸出:

Employee name is Jack Enfield, he is a Software Engineer at Microsoft.

如果有多個員工的資訊怎麼辦?在這種情況下,我們可以使用多維陣列和 foreach 迴圈來生成多個字串。

<?php
$output_string = 'Employee name is $name $last_name, he is a $job at $company.';

$values = array(
    array( '$name' => 'Jack' , '$last_name' => 'Enfield' , '$job' => 'Software Engineer', '$company' => 'Microsoft'),
	array( '$name' => 'Samuel', '$last_name' => 'Stevens', '$job' => 'Software Tester', '$company' => 'Apple'),
	array( '$name' => 'Mike', '$last_name' => 'Geller', '$job' => 'Salesman', '$company' => 'Amazon'),
	array( '$name' => 'John', '$last_name' => 'Clay', '$job' => 'Manager', '$company' => 'Merriot Hotels')
	);

foreach($values as $val){
    echo strtr($output_string, $val);
	echo "<br>";
}
?>

輸出:

Employee name is Jack Enfield, he is a Software Engineer at Microsoft.
Employee name is Samuel Stevens, he is a Software Tester at Apple.
Employee name is Mike Geller, he is a Salesman at Amazon.
Employee name is John Clay, he is a Manager at Merriot Hotels.

在 PHP 中使用 str_replace() 生成模板字串

str_replace() 是另一個用於生成字串的 PHP 內建函式。

它需要三個引數,第一個是要替換的值陣列,第二個是值,第三個是模板字串。

<?php
$pass = array('%name%', '%last_name%', '%job%', '%company%' );
$value = array('Jack', 'Enfield', 'Software Engineer', 'Microsoft');
echo str_replace($pass, $value, "Employee name is %name% %last_name%, he is a %job% at %company%.");
?>

str_replace() 會將帶有%% 的值替換為給定的值,並從給定的模板字串生成一個字串。

輸出:

Employee name is Jack Enfield, he is a Software Engineer at Microsoft.

在 PHP 中建立我們的函式以生成模板字串

我們還可以建立生成模板字串的函式。

<?php
$template = function ($values) {
    extract($values);
    return "Employee name is $name $last_name, he is a $job at $company.";
};
$values = array( 'name' => 'Jack', 'last_name' => 'Enfield', 'job' => 'Software Engineer', 'company' => 'Microsoft');
//No $ in the values array because extract function will itself detect values for variables.
echo $template($values);
?>

模板函式將首先從陣列中提取值,然後返回一個字串。

輸出:

Employee name is Jack Enfield, he is a Software Engineer at Microsoft.
作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相關文章 - PHP String