我有情况,我必须在不同的位置回应一些长度的几个变量。
我知道在bash中我们可以使用echo $ {variable:0:20}来实现这一点,而无需重写或改进变量。
例如在php中我希望能够做到这一点。
$string1 = "I am looking for a way to only echo the first 20 characters from a string variable";
echo $string:0:20;
我知道在这样的php中重新定义我的变量并且回应它是很简单的。
$small = substr($big, 0, 20);
echo $small;
但是我必须在许多位置使用相同的变量,并且每个位置我必须回显不同的长度,因此使用上述方法是不可行的。是否还有其他我无法使用的东西?
答案 0 :(得分:2)
我知道在bash中我们可以使用echo $ {variable:0:20}来实现这一点,而无需重写或改进变量。
在PHP中,您也可以使用echo substr($variable, 0, 20);
而无需重写或优化变量。
为方便起见(以及轻松修改,例如将...
添加到所有包装的字符串中),您可以将其包装在一个小函数中:
function shorten($string, $maxLength) {
return substr($string, 0, $maxLength);
}
并将其用作
echo shorten("Some very very very very very long string", 20);
甚至可以在您的函数中包含echo
:
function output($string, $maxLength) {
echo substr($string, 0, $maxLength);
}
并将其用作
output("Some very very very very very long string", 20);
答案 1 :(得分:0)
最简单的解决方案是构建一个function
,这样您就可以省去一些代码行,除此之外我没有看到任何其他改进,例如:
function small($string)
{
return substr($string, 0, 20);
}
将其用作:
print small("Some sentence longer than 20 chars");
答案 2 :(得分:0)
你不会错过任何事情,只是你可以回复substr
本身的返回值。如果你想要真的很短,就像从substr
写第二个参数太多,只需将它包装在一个新函数中。
function
ss($string, $size)
{
return substr($string, 0, $size);
}
echo ss('long ... string', 20);
答案 3 :(得分:0)
您可以使用此echo substr($string, 0, $length);
有关更多信息,您可以使用:
function output($string, $maxLen) {
echo substr($string, 0, $maxLen);
if(strlen($string) > $maxLen) echo ' ...';
}