PHP ekstra değişkenleri mümkünse ortadan kaldırmak için daha iyi mi?

5 Cevap php

Ben birçok evet olduğunu, bu mikro En iyileştirme arayacak biliyorum ama bu gibi şeyleri bilmek de iyidir. Şimdi soru, size aşağıda benim ilk örnekte ben bir mysql sorgusu sonra yukarıdaki değişkenler mysql sorgusu ile bir işlev çalışan başka bir hattı var içeren değişken bir dizi var göreceksiniz. Benim 2 örnekte ben 1 doğrultusunda her şeyi, ben gerçek bir hız kazancı olduğunu varsayalım ama muhtemelen bu düşük bellek kullanımı yardımcı olacak?

//example 1
$sql= 'UPDATE users SET setting_online=0 WHERE user_id=' .$_SESSION['user_id']; 
Database::executeQuery($sql);

//example 2
Database::executeQuery('UPDATE users SET setting_online=0 WHERE user_id=' .$_SESSION['user_id']);

5 Cevap

Muhtemelen evet, ama bu 40 veya 50 bayt hiç önemli olacak değildir.

Ama değişkenlerin sayısını azaltarak tamamen farklı bir nedenden dolayı iyidir: Bir programcı olarak programı takip etmek için takip etmek zorunda devletin miktarını azaltır - ve bu iş daha kolay ve böylece kod daha rahat hale getirir.

Ben okunabilirliği / anlaşılabilirliği hedefi olur. İlave değişkenleri kullanarak okunabilirliği artar, o zaman bunları kullanmak. Izale okunabilirliği artırır, sonra bunları kaldırın.

SQL enjeksiyon için bir şans yoktur, hatta zaman da, her yerde parametreli sorguları kullanın. Bu sadece içine almak için iyi bir alışkanlıktır.

evet örnek 2 alt bellek kullanımını yardımcı olacaktır

Ne olursa olsun sonuçta dize bellekte depolanır. Ya işleve iletilen bir şey, ya da o işleve bir değişken olarak.

Değeriyle geçtiğinde php twice kez sql adında bir değişken, ve ikinci dize saklayan eğer büyük ölçüde bağlıdır. Php (özellikle Zend motoru) kullandığı "copy on write" Eğer dize iki kez depolanır olmayacaktır. Dize değiştirildiğinde sadece kopyalanır.

Eğer ilk örnekte kullanacağız sadece ekstra bellek o kopya için ekstra bir referanstır. Bu bellekte minimal ektir, yani evet ilk örnek belki ekstra 32-bit kelimelerin birkaç kullanır. Bu önemi ise muhtemelen php gelişmekte gerektiğini noktaya ihmal edilebilir düzeydedir. O kadar bellek kullanımı açısından sizin kontrolünüz dışında olduğunu, ve 32-bit kelime konularda bir çift, muhtemelen C :) kodunuzu yazılı olmalıdır eğer.