Php 如何在考虑空变量的情况下创建字符串?
我试图为一个页面构建一个占位符元描述,以防用户没有在CMS中包含描述 我从下面的代码开始,但是如果任何其他变量也为空,例如Php 如何在考虑空变量的情况下创建字符串?,php,variables,if-statement,Php,Variables,If Statement,我试图为一个页面构建一个占位符元描述,以防用户没有在CMS中包含描述 我从下面的代码开始,但是如果任何其他变量也为空,例如$phone,$location['zip']等等,它当然会失败 <?php if (!empty($description)) { echo '<meta name="description" content="' .$description . '">'; } else { // Should return: Apple is a
$phone
,$location['zip']
等等,它当然会失败
<?php
if (!empty($description)) {
echo '<meta name="description" content="' .$description . '">';
}
else {
// Should return: Apple is a business located in Palo Alto, 95014. Call 408.996.1010...
$description = $name . ' is a ' . strtolower($category) . ' located in ' . $location['city'] . ', ';
$description .= $location['zip'] . '. Call ' . $phone . ' for more details today.';
echo '<meta name="description" content="' . $description . '">';
} ?>
以这种方式构建描述最有效的方法是什么?目前,我只能想到嵌套的if语句,这听起来很混乱,我相信一定有一种干净的方法可以做到这一点。由于描述是根据输入而变化的,所以将其放入自己的函数或类中以封装它:
/**
* build a description based on various input variables
* @return string
*/
function build_description($description, $name, $category, array location, $phone) {
// build the description as you see fit.
}
$description = build_description(compact('description', 'name', 'category'));
$metaDescription = sprintf('<meta name="description" content="%s"', htmlspecialchars($description));
/**
*基于各种输入变量构建描述
*@返回字符串
*/
函数构建描述($description,$name,$category,array location,$phone){
//按照您认为合适的方式构建描述。
}
$description=构建描述(compact('description','name','category');
$metaDescription=sprintf(“由于描述是根据输入而变化的,所以将其放入自己的函数或类中以封装它:
/**
* build a description based on various input variables
* @return string
*/
function build_description($description, $name, $category, array location, $phone) {
// build the description as you see fit.
}
$description = build_description(compact('description', 'name', 'category'));
$metaDescription = sprintf('<meta name="description" content="%s"', htmlspecialchars($description));
/**
*基于各种输入变量构建描述
*@返回字符串
*/
函数构建描述($description,$name,$category,array location,$phone){
//按照您认为合适的方式构建描述。
}
$description=构建描述(compact('description','name','category');
$metaDescription=sprintf(“定义的其他变量不应该是字符串,而应该是对象的一部分,例如…Description。
在这种情况下,调用Description->isEmpty()会更容易,如果其中一个变量为空,则该函数将返回true
如果您一直使用此配置,您仍然可以制作阵列:
$myArray=array($name,$category,…);
并检入一个循环,或者可能返回in_数组(“”,$myArray)定义的其他变量不应该是字符串,而应该是对象的一部分,例如…Description。
在这种情况下,调用Description->isEmpty()会更容易,如果其中一个变量为空,则该函数将返回true
如果您一直使用此配置,您仍然可以制作阵列:
$myArray=array($name,$category,…);
并检查一个循环或可能返回in_数组(“”,$myArray)添加一个函数来检查是否设置了值
i、 e
是否添加一个函数来检查是否设置了值
i、 e
我不明白“但是如果其他变量也为空,它当然会失败。”-请重新表述为什么听起来很混乱?我不明白“但是如果其他变量也为空,它当然会失败。”-请重新表述为什么听起来很混乱?我本来计划将其作为类中的一个方法,但它仍然无法解决传递给它的一个参数为空时会发生什么的问题。我本来计划将其作为类中的一个方法,但它仍然无法解决传递给它的一个参数为空时会发生什么的问题.