Όταν εργάζεστε με μεταβλητές σε PHP και JavaScript σε καθημερινή βάση, συχνά συναντά κανείς το ερώτημα εάν μια μεταβλητή είναι κενή. Αξίζει να γνωρίζετε τις εγγενείς λειτουργίες και τις διαφορές τους για λόγους ελέγχου. Ενοχλητικά, δεν υπάρχει εύκολος τρόπος να ελέγξετε διαισθητικά εάν υπάρχει μια μεταβλητή ή όχι. Ο πίνακας παρακάτω διευκρινίζει τι σημαίνει αυτό. Ωστόσο, αυτό που θέλετε μπορεί να τοποθετηθεί εκ νέου χρησιμοποιώντας μικρές βοηθητικές λειτουργίες.
PHP
=== null | == null | is_null | isset | empty | if/else | ternary | count > 0 | == '' | === '' | @__x | |
$a | true | true | true | false | true | false | false | false | true | false | false |
null | true | true | true | false | true | false | false | false | true | false | false |
[] | false | true | false | true | true | false | false | false | false | false | false |
0 | false | true | false | true | true | false | false | true | true | false | true |
1 | false | false | false | true | false | true | true | true | false | false | true |
-1 | false | false | false | true | false | true | true | true | false | false | true |
'' | false | true | false | true | true | false | false | true | true | true | false |
' ' | false | false | false | true | false | true | true | true | false | false | false |
str | false | false | false | true | false | true | true | true | false | false | true |
[0,1] | false | false | false | true | false | true | true | true | false | false | true |
[0] | false | false | false | true | false | true | true | true | false | false | true |
new stdClass() | false | false | false | true | false | true | true | true | false | false | false |
Υλοποίηση __x:
740550c6b3d2b9ae03e4d220eb08e6e3
Η συνάρτηση βοηθού __x καλείται με τον τελεστή ελέγχου σφαλμάτων @, ο οποίος συνήθως δεν συνιστάται, προκειμένου να είναι σε θέση να ελέγχει μεταβλητές που δεν έχουν οριστεί προηγουμένως.
JavaScript
=== null | == null | typeof input === 'undefined' | if/else | ternary | length > 0 | == '' | === '' | __x | |
$a | false | true | true | false | false | type error | false | false | false |
null | true | true | false | false | false | type error | false | false | false |
[] | false | false | false | true | true | false | true | false | false |
0 | false | false | false | false | false | false | true | false | true |
1 | false | false | false | true | true | false | false | false | true |
-1 | false | false | false | true | true | false | false | false | true |
'' | false | false | false | false | false | false | true | true | false |
' ' | false | false | false | true | true | true | false | false | false |
str | false | false | false | true | true | true | false | false | true |
[0,1] | false | false | false | true | true | true | false | false | true |
[0] | false | false | false | true | true | true | false | false | true |
new Object() | false | false | false | true | true | false | false | false | false |
Υλοποίηση __x:
740550c6b3d2b9ae03e4d220eb08e6e3