PHP 是否有像 Python 的 f-string 函数那样的字符串函数? (不是 str.format())
Does PHP have a string function like Python's f-string function? (not str.format())
我是 PHP 的新手,所以请原谅这个问题。
我想知道 PHP 是否有字符串格式函数,例如 Python 的 f-strings 函数,而不是 str.format()。我看过一些关于这个主题的帖子,但大多数被接受为答案的例子都参考了 Python 处理格式化字符串 str.format()
的旧方法。在我的例子中,我想使用格式化字符串构建一个变量,例如 (Python):
f_name = "John"
l_name = "Smith"
sample = f`{f_name}'s last name is {l_name}.`
print(sample)
我知道我可以使用 (PHP):
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
但是如果我想使用 $format
作为变量呢?主要思想是基于其他变量创建一个动态变量,例如:
$db_type = $settings['db_type']; # mysql
$db_host = $settings['db_host']; # localhost
$db_name = $settings['db_name']; # sample
var $format = "%s:host=%s; dbname=%s";
# Not sure what to do after that, but I can use string concatenation:
var $format = $db_type + ":host=" + $db_host + "; dbname=" + $db_name;
var $connection = new PDO($format, $db_user, $db_password);
注意:我知道根据 PHP 文档有几种方法可以进行字符串连接,但是我真的找不到这样的东西。
您可以使用圆点表示法将任何变量附加到任何其他带有 string concatenation 的变量:
$num = 5;
$location = 'tree';
$output = 'There are ' . $num . ' monkeys in the ' . $location; // There are 5 monkeys in the tree
或.=
表示法:
$a = "Hello ";
$b = "World";
$a .= $b; // $a now contains "Hello World"
您还可以使用 双引号 中包含的单个字符串,它会自动计算变量。请注意,单引号 而不是 评估变量:
$num = 5;
$location = 'tree';
echo 'There are $num monkeys in the $location'; // There are $num monkeys in the $location
echo "There are $num monkeys in the $location"; // There are 5 monkeys in the tree
这在分配给变量时也是一样的:
$num = 5;
$location = 'tree';
$output = "There are $num monkeys in the $location"; // There are 5 monkeys in the tree
这可以用大括号进一步说明:
$output = "There are {$num} monkeys in the {$location}"; // There are 5 monkeys in the tree
// OR
$output = "There are ${num} monkeys in the ${location}"; // There are 5 monkeys in the tree
我是 PHP 的新手,所以请原谅这个问题。
我想知道 PHP 是否有字符串格式函数,例如 Python 的 f-strings 函数,而不是 str.format()。我看过一些关于这个主题的帖子,但大多数被接受为答案的例子都参考了 Python 处理格式化字符串 str.format()
的旧方法。在我的例子中,我想使用格式化字符串构建一个变量,例如 (Python):
f_name = "John"
l_name = "Smith"
sample = f`{f_name}'s last name is {l_name}.`
print(sample)
我知道我可以使用 (PHP):
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
但是如果我想使用 $format
作为变量呢?主要思想是基于其他变量创建一个动态变量,例如:
$db_type = $settings['db_type']; # mysql
$db_host = $settings['db_host']; # localhost
$db_name = $settings['db_name']; # sample
var $format = "%s:host=%s; dbname=%s";
# Not sure what to do after that, but I can use string concatenation:
var $format = $db_type + ":host=" + $db_host + "; dbname=" + $db_name;
var $connection = new PDO($format, $db_user, $db_password);
注意:我知道根据 PHP 文档有几种方法可以进行字符串连接,但是我真的找不到这样的东西。
您可以使用圆点表示法将任何变量附加到任何其他带有 string concatenation 的变量:
$num = 5;
$location = 'tree';
$output = 'There are ' . $num . ' monkeys in the ' . $location; // There are 5 monkeys in the tree
或.=
表示法:
$a = "Hello ";
$b = "World";
$a .= $b; // $a now contains "Hello World"
您还可以使用 双引号 中包含的单个字符串,它会自动计算变量。请注意,单引号 而不是 评估变量:
$num = 5;
$location = 'tree';
echo 'There are $num monkeys in the $location'; // There are $num monkeys in the $location
echo "There are $num monkeys in the $location"; // There are 5 monkeys in the tree
这在分配给变量时也是一样的:
$num = 5;
$location = 'tree';
$output = "There are $num monkeys in the $location"; // There are 5 monkeys in the tree
这可以用大括号进一步说明:
$output = "There are {$num} monkeys in the {$location}"; // There are 5 monkeys in the tree
// OR
$output = "There are ${num} monkeys in the ${location}"; // There are 5 monkeys in the tree