Null で array_shift() を処理するにはどうすればよいですか?
P粉300541798
P粉300541798 2024-02-25 22:27:30
0
2
430

このコードを見てください:

リーリー

PHP 7.2 を使用していたときは正常に動作していましたが、8.1 にアップグレードすると次のエラーが発生します:

PHP 致命的エラー: キャッチされない TypeError: array_shift(): 引数 #1 ($array) は配列型である必要があります。/path/to/qanda.php に null が指定されています:469

それを修正する方法はありますか?

P粉300541798
P粉300541798

全員に返信(2)
P粉237029457

最も基本的な解決策は、型の要件に一致するように null 値を空の配列に置き換えることです。

$end = isset($newvar) ? array($newvar) : []; while($ends = array_shift($end)){
 配列を作成し、

$newvar null 合体演算子 を使用することもできます:

$end = [$newvar ?? null]; while($ends = array_shift($end)){
しかし、単一の値を持つ配列を作成し、

array_shift の戻り値を使用してループを作成する理由がわかりません。ループ本体は 1 回だけ実行されます。 おそらく条件式を使用するだけでしょうか?

if (isset($newvar)) {
いいねを押す +0
P粉696146205

空の配列を使用してください:

$end = isset($newvar) ? array($newvar) : [];

array_shift は最初の呼び出しで入力として null 空の配列を返すため、ループは実行されません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!