explode() 的特定问题 - 不返回任何内容
Specific problem with explode() - not returning anything
我正在尝试分解用户名,它是一个全名字符串。我正在尝试以下操作:
function name_letters_explode($name) {
$letters = explode(' ', $name);
if(count($letters) > 1) {
return substr($letters[0], 0, 1) . substr($letters[1], 0, 1);
} else {
return substr($name, 0, 1);
}
}
name_letters_explode($user->name);
但 return 中没有任何内容。当我删除 if count 条件时(即检查用户是否输入了 1 个名称或其完整(2 部分)名称,以便我可以决定 return 的内容 - 我收到错误 undefined array key 1(这个名字有两部分,我敢肯定,所以不可能没有第二个名字)怎么办?
首先你需要 count condation.because mady name is null or have not space(' ').
您可能在另一个函数或 class 方法中定义了函数。
可以这样做,但是由于函数是在全局范围内定义的,如果该方法被调用两次,这将导致错误,因为 PHP 引擎将认为该函数在第二次调用期间被重新定义。
其次,如果您的代码在 class 方法中,则不需要创建函数,您可以将代码传递到函数外部
public function index(){
$name = "milad pegah";
$letters = explode(' ', $name);
if(count($letters) > 1) {
return substr($letters[0], 0, 1) . substr($letters[1], 0, 1);
} else {
return substr($name, 0, 1);
}
}
或者您可以在另一个方法中编写代码,然后 return 在您的目标方法中编写代码。
public function name_letters_explode($name) {
$letters = explode(' ', $name);
if(count($letters) > 1) {
return substr($letters[0], 0, 1) . substr($letters[1], 0, 1);
} else {
return substr($name, 0, 1);
}
}
public function index(){
$name = "milad pegah";
return $this->name_letters_explode($name);
}
else(在 class 之外,您的代码没问题,它会起作用。
我正在尝试分解用户名,它是一个全名字符串。我正在尝试以下操作:
function name_letters_explode($name) {
$letters = explode(' ', $name);
if(count($letters) > 1) {
return substr($letters[0], 0, 1) . substr($letters[1], 0, 1);
} else {
return substr($name, 0, 1);
}
}
name_letters_explode($user->name);
但 return 中没有任何内容。当我删除 if count 条件时(即检查用户是否输入了 1 个名称或其完整(2 部分)名称,以便我可以决定 return 的内容 - 我收到错误 undefined array key 1(这个名字有两部分,我敢肯定,所以不可能没有第二个名字)怎么办?
首先你需要 count condation.because mady name is null or have not space(' ').
您可能在另一个函数或 class 方法中定义了函数。 可以这样做,但是由于函数是在全局范围内定义的,如果该方法被调用两次,这将导致错误,因为 PHP 引擎将认为该函数在第二次调用期间被重新定义。
其次,如果您的代码在 class 方法中,则不需要创建函数,您可以将代码传递到函数外部
public function index(){
$name = "milad pegah";
$letters = explode(' ', $name);
if(count($letters) > 1) {
return substr($letters[0], 0, 1) . substr($letters[1], 0, 1);
} else {
return substr($name, 0, 1);
}
}
或者您可以在另一个方法中编写代码,然后 return 在您的目标方法中编写代码。
public function name_letters_explode($name) {
$letters = explode(' ', $name);
if(count($letters) > 1) {
return substr($letters[0], 0, 1) . substr($letters[1], 0, 1);
} else {
return substr($name, 0, 1);
}
}
public function index(){
$name = "milad pegah";
return $this->name_letters_explode($name);
}
else(在 class 之外,您的代码没问题,它会起作用。