Kayıtlar

php etiketine sahip yayınlar gösteriliyor

PHP ile fonksiyonda birden fazla değer döndürmek

Genellikle php derslerinde fonksiyonlardan 1 ya da 0 gibi değerler döndürülerek sonuçlar verilir. Ya da kimi durumlarda bir değişken yardımı ile o değişkenin değeri döndürülür. Ek olarak fonksiyonlar dizi de döndürebilmektedirler. Aslında son derece mantıklı ve olması gerektiği gibi gözükmesine rağmen bazı durumlarda tam olarak düşünülemeyebilinir.

Örneğin veritabanındaki bir çok değişkeni bir fonksiyonla çekip onlarla daha sonradan oynamak için oldukça kullanışlı bir olaydır.

PHP ile yazısal bir veriyi sayıya çevirmek

Aslında çok basit bir olay ama yine de çoğu zaman bilmeyen kişilerin başını ağrıtabileceğinden belirtmek istedim.

$yazi = "1";
$sayi = (int)$yazi;

İlk durumda ($yazi) çoğu zaman sorun çıkartmasa da bazı durumlarda sayı olarak algılanmamasından dolayı PHP'de sorun çıkartmaktadır.

İkinci durumda ($sayi) ise değişkenle gönül rahatlığıyla matematiksel işlemler yapılabilmektedir.

Ek olarak, çevirimde yazılan ilk sayısal ifade sayıya çevrilmektedir. "1a", "1.2", "1,4", "1 " gibi. Ama yazının başındaki ifade harf ise sayıya 0 olarak çevrilecektir.

PHP ile sayı ve tam sayıları algılama

Geçen gün PHP yazarken bulduğum iki fonksiyonun karşılaşmasını yapmayı düşünüyorum.

Çoğu zaman bir değişkenin sayı mı olduğu yoksa yazı mı olduğunu anlamamız gerekebilir. Bu durumda is_numeric() fonksiyonunu kullanmamız gerekir. -1, 0, 1, 1.5 gibi ifadeleri 1 olarak yani true olarak döndürüp, 1,5 ve 1 elma gibi ifadeleri false olarak döndürmekte.

Bazen sayı olmasındansa tam sayı olmasını da sorguluyor olabiliriz. İşte bu gibi durumlar için ise ctype_digit() fonksiyonu kullanılmaktadır. -1, 1.5, 1,5 ve tüm yazılı ifadeleri false olarak dönürüp, 0 ve tüm pozitif tam sayıları true olarak döndürmekte.

Cannot modify header information hatası

Aslı : "Warning: Cannot modify header information - headers already sent by (output started at /home/www/x/html/x.php:2)" şeklinde olan bu hataya bir kaç neden yol açmaktaymış. 
1. olarak php etiketlerini açıp kapatırken arada boşluk kullanmanız bu hataya neden olabilir. çözüm olarak <?php etiketinden alt ve üst satırını boş bırakmayın ve kapatırken de ?>'in alt ve üst satırını boş bırakmayın. 2. neden ise php dosyasının yanlış kodlanmasıdır. çözümü dosyanın kodlanmasını değiştirmek olacaktır. 3. ve en çok karşılaşılan sorunun çözümü ise <?php 'nin hemen sonrasına ob_start(); ?> nin de hemen öncesine ob_end_flush(); kodlarının koyulmasıdır..