Confusing error message: Cannot use isset() on the result of an expression (you can use "null !== expression" instead)

Aperta
#21,507 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
php
Ambito
compilers

Direzione di ricerca

Inizia riproducendo l’esempio PHP 8.5 con una costante di classe dinamica e isset(), quindi traccia la diagnosi che produce il confronto suggerito con null. Determina dove il messaggio può tenere conto delle costanti e raccomanda invece defined(); il lavoro è terminato quando la diagnosi è corretta per questo esempio e il comportamento esistente rimane coperto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Feature Status: Needs Triage
Description

The following code:

<?php

class X {
  const A = '1';
}
$c = 'b'; 
isset(X::{$c}); 

Resulted in this (valid) output:

atal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead)

but I cannot use null !== X::{$c}, which also yields a Fatal Error.

With a constant, this message should recommend using 'defined()' instead, or on top of the current recommendation.

PHP Version
Tested on PHP 8.5, but any version since 8.3
Operating System

Not applicable.

Lingua principale
C
Stelle
40.4k
Fork
8.2k
Merge medio
2g 15h
PR unite (30g)
103

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di php/php-src

Tutte le issue di php/php-src

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.