当前位置: 首页 > 面试题库 >

为什么此PHP代码仅回显“ Array”?

吴经略
2023-03-14
问题内容

这是我的代码:

if(isset($_POST['check']) AND $_POST['check'] == 'First') {
  $errormessage = array();

  if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4) { 
     $errormessage[] = "FEL - Vänligen ange fullständiga namn. Please enter atleast 3 or more characters for your name";
  }
  if(!isEmail($_POST['usr_email'])) {
     $errormessage[] = "FEL - Invalid email address.";
  }
  if(empty($errormessage)) {
     echo 1;
  } else { 
     echo $errormessage; // <--
  }
}

echo $errormessage运行它输出Array。我究竟做错了什么?


问题答案:

您正在调用echo一个没有隐式字符串表示形式的实际数组。

为了输出数组的内容,你可以使用print_rvar_dumpvar_export功能或自定义输出,你可以使用array_map,甚至是foreach循环:

print_r($errormessage);
var_dump($errormessage);
var_export($errormessage);

foreach($errormessage as $error) 
   echo $error . '<br/>';

array_map('echo', $errormessage);


 类似资料:
  • 问题内容: var x int done := false go func() { x = f(…); done = true } while done == false { } 这是Go代码。我的恶魔告诉我,这是UB代码。为什么? 问题答案: Go Memory Model不保证该程序将始终遵守在goroutine中写入x的值。go常规销毁 部分中提供了一个类似的错误程序作为示例。 在本节中,G

  • 问题内容: 我编写了以下程序: 由于通道事件列表是一个缓冲通道,我想我应该获得100倍的输出“嘿!”,但是它只显示一次。我的错误在哪里? 问题答案: 更新(Go 1.2版或更高版本) 从Go 1.2开始,调度程序基于 抢先式多任务处理 原则。这意味着原始问题(以及下面提供的解决方案)中的问题不再相关。 从Go 1.2发行说明中 调度程序中的抢占 在以前的版本中,永远循环的goroutine可能会使

  • 问题内容: 在方法或类范围内,下面的行进行编译(带有警告): 在类范围中, 变量获取其默认值 ,以下给出“未定义引用”错误: 它不是第一个应该以相同的“未定义参考”错误结束吗?还是第二行应该编译?还是我缺少什么? 问题答案: tl; dr 对于 字段 ,是非法的,因为它是对的非法前向引用。您实际上可以通过编写来解决此问题,该文件可以毫无抱怨地进行编译。 对于 局部变量 ,是非法的,因为未在使用前进

  • 问题内容: 为什么这段代码不抛出?它在不使用方法的情况下修改了一段时间,这是唯一安全的删除方法。 如果将替换为,则会得到相同的结果。但是,如果我将列表更改为或只是得到了预期的异常。到底是怎么回事?我正在使用是否相关。 编辑 我找到了以下链接 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4902078 相关部分是 天真的解决方案是将协同修改

  • 问题内容: 我不太确定这是什么意思或在做什么,有人可以详细说明吗? 问题答案: 它接受发送者引用的对象,并尝试将其转换为Player类型。Java对象是强类型的,这意味着您必须声明对象的类型。 如果发件人引用的对象不能转换为Player对象,则将为InvalidCast抛出异常。

  • 因此,我开始开发x86\u 64 hobby内核,我发现这段代码用于加载GDT(全局描述符表),但我不知道它是做什么的。 我知道它从rdi寄存器(sysv abi中函数调用的第一个参数的寄存器)加载我的gdt描述符,但我不知道为什么我需要将所有段寄存器设置为0x10,其余的是什么黑魔法?