Ich habe einmal einen Artikel gefunden mit den Unterschieden, wie PHP und Ruby verschiedene Typen von Variablen handhaben, die mit bestimmten Testbedingungen übereinstimmen (zB: isempty, isset, etc). Wie unterscheiden sie sich?Wie unterscheiden sich Ruby und PHP in ihren Evaluierungs-Engines?
Antwort
PHP/empty
so ziemlich das gleiche wie das Äquivalent Ruby ist, empty?
Bei Strings in Rails, die blank?
Methode empty?
bevorzugt wird
# this is PHP
$bob = array(); # empty($bob) => true
$bob = array("cat"); # empty($bob) => false
$bob = null; # empty($bob) => true
$bob = "boo" # empty($bob) => false
$bob = ""; # empty($bob) => true
# this is Ruby
[].empty? # => true
[ "cat" ].empty? # => false
nil.empty? # => NoMethodError
"boo".empty? # => false
"".empty? # => true
PHP/isset mit has_key ersetzt werden? für das Hash-Objekt. Für die allgemeine Verwendung der lokalen Variablen instantiiert Ruby Variablen als Null, wenn sie im Code referenziert werden. Es ist also nur leicht zu überprüfen, ob sie null sind oder nicht.
EDIT
Sie können auch die defined?
Schlüsselwort verwenden, um die PHP Nutzung von isset
für lokale Variablen zu duplizieren.
#PHP
isset($bob); # => false
$bob = "foo";
isset($bob); # => true
$bob = array();
isset($bob['cat']); # => false
$bob = array('cat' => 'bag');
isset($bob['cat']); # => true
isset($bob['dog']); # => false
#Ruby
bob # => nil
defined?(bob) # => false
bob.nil? # => true
bob = "foo"
bob # => "foo"
bob.nil? # => "false"
bob = {}
bob.has_key? :cat # => false
bob = { :cat => 'bag' }
bob.has_key? :cat # => true
Eine Sache vorsichtig sein: In PHP, eine leere Zeichenfolge oder einen numerischen 0 wird in einer if
Aussage falsch bewerten. In Ruby werden nur nil
und false
in einer if-Anweisung als false ausgewertet. Dies erfordert das Hinzufügen von zwei weiteren booleschen Abfragemethoden, blank?
und zero?
. Diese Methoden werden als Teil einer Rails-Anwendung in die String-Klasse eingefügt. Freistehende Versionen von ihnen können auf Facetten gefunden werden.
Das ist eine sehr diffuse Frage. Ein Hauptunterschied zwischen Ruby und PHP ist, dass Ruby (meistens) strongly typed ist, wohingegen PHP sehr schwach typisiert ist.
- 1. Wie unterscheiden sich Echo und Druck in PHP?
- 2. Wie unterscheiden sich meine C# - und PHP-Entschlüsselungsmethoden?
- 3. Wie unterscheiden sich öffentliche und private Schlüssel?
- 4. Wie unterscheiden sich 127.0.0.1, 0.0.0.0 und localhost?
- 5. Wie unterscheiden sich memory_order_seq_cst und memory_order_acq_rel?
- 6. Wie unterscheiden sich bcprov und bcprov-ext?
- 7. Wie unterscheiden sich `createImageData()` und `new ImageData()`?
- 8. Cpanel und Command Line unterscheiden sich voneinander für PHP-Version
- 9. == und% in% unterscheiden sich basierend auf Zeichencodierung?
- 10. Wie unterscheiden sich Zufallsgenerierungsmethoden in Python?
- 11. UIBarButtonItem Größen unterscheiden sich
- 12. Wie funktioniert das "->" und "." Mitgliederzugriffsoperationen unterscheiden sich in C
- 13. Wie unterscheiden sich Rollen und Eigenschaften in Elch?
- 14. Wie unterscheiden sich [environment] und $ env in der Powershell?
- 15. Wie erkenne ich Punkte, die sich drastisch von ihren Nachbarn unterscheiden?
- 16. Ausgabewerte unterscheiden sich zwischen R und Python?
- 17. Wie erinnern sich Banken an "Ihren Computer"?
- 18. hmac_sha256 in PHP und C# unterscheiden
- 19. Wann unterscheiden sich Request.Params und Request.Form?
- 20. JPA oder JDBC, wie unterscheiden sie sich?
- 21. Wie unterscheiden sich diese beiden Aufrufe?
- 22. Wie unterscheiden sich diese beiden Guids?
- 23. Wie unterscheiden sich Django-Kanäle von Sellerie?
- 24. Wie unterscheiden sich diese drei parametrisierten Variablen?
- 25. Wie unterscheiden sich die MATLAB-Funktionen plot und line?
- 26. Wie unterscheiden sich diese beiden übergeordneten Funktionen?
- 27. Warum und wie unterscheiden sich diese beiden Nullwerte?
- 28. Wie unterscheiden sich Anfrage- und Antwortereignis im Knoten js?
- 29. Wie unterscheiden sich die vxWorks "Kernel Shell" und "Host Shell"?
- 30. Wie unterscheiden sich "mvn clean package" und "mvn clean install"?