imitheos Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 Σταμάτα να συμφωνείς, θα φάμε ban για διατήρηση διπλού account. Δεν θα μας προδώσει ο migf1 Μιλάνε για 2 φορές πιο αργή η sprintf() ... προσωπικά δεν ξέρω, δεν το έχω μετρήσει. Το δέχομαι. Για να μας νοιάξει όμως η διαφορά δεν θα πρέπει ο χρόνος των sprintf να είναι σημαντικό ποσό σε σχέση με τον χρόνο όλου του προγράμματος ? Ας υποθέσουμε ότι έχεις ένα πρόγραμμα που ζητάει username+pass, τρέχει καμμια 80άρα φορές τον SHA256 και μετά συγκρίνει το παραγόμενο hash με αυτό που υπάρχει στην βάση. Όλο το βάρος θα είναι στον SHA256 και όχι στην sprintf. Ας υποθέσουμε ότι η concatenation θέλει 0.02sec ενώ η sprintf θέλει 0.08sec. Όταν το υπόλοιπο κομμάτι θα θέλει 2sec παίζει ρόλο αν θα έχεις σύνολο 2.02 ή 2.08 ?
migf1 Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 Thanks για τις διευκρινήσεις. Οπότε Interpolation σημαίνει ουσιαστικά τη χρήση διπλών εισαγωγικών για να γίνονται evaluate και τα variables, σε αντίθεση με τα σκέτα εισαγωγικά που δεν κάνουν evaluate τίποτα, σωστά; Btw, θεωρητικά τα μονά εισαγωγικά γίνονται ταχύτερα parse νομίζω Τελείως άναρχη γλώσσα πάντως. Το γιατί βγάζει "2b" ο κώδικας με τις ξεχωριστές αναθέσεις στα $a και $b παραμένει μυστήριο για μένα EDIT: Προφανώς το speed-gain είναι σε συνάρτηση της χρήσης... απλώς δεν βρίσκω unreadable τη χρήση του τελεστή .
defacer Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 Οπότε Interpolation σημαίνει ουσιαστικά τη χρήση διπλών εισαγωγικών για να γίνονται evaluate και τα variables, σε αντίθεση με τα σκέτα εισαγωγικά που δεν κάνουν evaluate τίποτα, σωστά; Btw, θεωρητικά τα μονά εισαγωγικά γίνονται ταχύτερα parse νομίζω Τελείως άναρχη γλώσσα πάντως. Το γιατί βγάζει "2b" ο κώδικας με τις ξεχωριστές αναθέσεις στα $a και $b παραμένει μυστήριο για μένα Θεωρητικά ναι. Πρακτικά όμως όχι (by the way, συμφωνώ 100% με το this is pointless του Nikita στον οποίο ξανά by the way μπορούν να ρίξουν μια ματιά τα δικά μας σημερινά 17χρονα για να δουν how it's done). Η γλώσσα δεν είναι απλά άναρχη αλλά γενικότερα ΓΤΠ. Όσο για το γιατί σου βγάζει "2b", μπορείς να δείς αυτή την απάντησή μου στο StackOverflow από όπου έκλεψα το παράδειγμα...
migf1 Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 ... echo "Total = ".($a+$; // concat: θέλει παρενθέσεις // interpolation: δε γίνεται ... Εννοείς πως δεν γίνεται με interpolation να βγάλει το άθροισμα του $a + $b? (δεν ξέρω καθόλου, θα πρέπει να το τεστάρω και δεν έχω στημένο php-dev εδώ πέρα).
defacer Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 Εννοείς πως δεν γίνεται με interpolation να βγάλει το άθροισμα του $a + $b? (δεν ξέρω καθόλου, θα πρέπει να το τεστάρω και δεν έχω στημένο php-dev εδώ πέρα). Ναι, δε γίνεται.
defacer Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 Ok, αυτά περί PHP... back to C Όχι όχι, περίμενε λίγο... >function getArray() { return array(42); } $arr = getArray(); echo $arr[0]; // τυπώνει "42" echo getArray()[0]; // σε PHP < 5.4 δεν κάνει compile :lol: :lol:
παπι Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 > $foo = "foo"; echo "Hello ".$foo; // σωστός όρος: concatenation echo "Hello $foo"; // σωστός όρος: interpolation Διαφορες μεταξυ ? η απλα php > "hello $foo" "hello {$foo}"
defacer Δημοσ. 18 Ιουνίου 2012 Δημοσ. 18 Ιουνίου 2012 Διαφορες μεταξυ ? η απλα php > "hello $foo" "hello {$foo}" Στο συγκεκριμένο παράδειγμα καμία διαφορά.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα