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