UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#060 PHPのバージョン8からは、count()関数に代入する変数を配列で初期化する必要があります。

記入日:2023-03-09 編集日:2023-03-09

SQL見るだけクエリ。今回もPHPの話ですがサーバー乗り換えの際にハマってしまったので備忘録的に残しておきます。PHPのバージョン8からは、count()関数に代入する変数を配列で初期化する必要があります。

配列でない場合、以下のようなエラーが発生します。

Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, string given
 

count()関数に代入する変数を配列で初期化する方法は、以下のように変数に空の配列を代入するか、あるいは変数を宣言するときに配列として定義することです。

// 空の配列を代入する方法
$var = array();
echo count($var); // 0

// 配列として定義する方法
$var = [1, 2, 3];
echo count($var); // 3
 

ちなみに、count()関数は、変数やオブジェクトに含まれる要素の数をカウントする関数です。 多次元配列の全ての要素をカウントする場合は、mode引数にCOUNT_RECURSIVEを指定します。

例えば、多次元配列の要素をカウントしたい場合。count()関数のmode引数にCOUNT_RECURSIVEを指定すると、多次元配列の全ての要素をカウントできます。

以下のようなコードです。

$array = array(1, 2, array(3, 4));
echo count($array); // 3
echo count($array, COUNT_RECURSIVE); // 5

このコードでは、$arrayは2次元配列です。count($array)は、1次元目の要素の数を返します。count($array, COUNT_RECURSIVE)は、1次元目と2次元目の要素の数を合計して返します。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。