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.