当结果不应为数组时,PHP函数返回数组

当结果不应为数组时,PHP函数返回数组,php,mysql,Php,Mysql,我对PHP非常陌生。我有一个函数,它应该返回一条记录,其中包含一列1或0: function is_pitcher($player_id) { global $db; $query = 'SELECT IF (position = 1, 1, 0) AS is_pitcher FROM players WHERE player_id = :player_id'; $statement = $db->prepare($query); $statement->bindV

我对PHP非常陌生。我有一个函数,它应该返回一条记录,其中包含一列1或0:

function is_pitcher($player_id)  {
  global $db;
  $query = 'SELECT IF (position = 1, 1, 0) AS is_pitcher FROM players WHERE player_id = :player_id';
  $statement = $db->prepare($query);
  $statement->bindValue(':player_id', $player_id);
  $statement->execute();
  $is_pitcher = $statement->fetchAll();
  $statement->closeCursor();
  return $is_pitcher;
在我的控制页面上,我有一个
IF
语句,它对值1和0计算
$is\u pitcher

if ($action == 'get_player') {
  $player_id = filter_input(INPUT_GET, 'player_id');
  $is_pitcher = is_pitcher($player_id);
if ($is_pitcher == 1) {...
使用
echo$is\u pitcher
测试该值表明它是一个数组,因此不能以这种方式进行计算。我用
fetch()
fetchAll()
两种方法尝试了该函数,结果相同

我可以使用
echo$is\u pitcher['is\u pitcher']
获取
$is\u pitcher
的值,但是在控制页面上这样做会破坏它

有没有办法编写不返回数组的函数?或者,有没有办法将变量作为数组进行求值

ETA:作为对评论的回答,以下是阵列的结构:

array ( 0 => array ( 'is_pitcher' => '0', 0 => '0', ), )

PDOStatement::fetchAll-返回包含所有结果集行的数组

因此,是的,它应该是一个数组,即使只有一个结果。

你能在
$is\u pitcher
中向我们展示数组的结构吗,使用
var\u export($is\u pitcher)
fetchAll
总是返回一个数组(数组的长度可以是1),试试
$is_-pitcher[0]
你可以引用
$is_-pitcher[0]['is_-pitcher']]]
-也就是说,
如果($is_-pitcher[0]['is_-pitcher']==1){…
一个简单的变量转储或打印会节省很多时间