Anasayfa FORUMLAR Üye Girişi Dosyalar Dersler İpuçları Yardımcı Araçlar Hakkımızda
KİMLER BAĞLI
Toplam Üye: 32638
Aktif Üye: 0
Aktif Ziyaretçi: 901
Üye Adı
Şifre
Beni Hatırla
          Yeni Üye KayıtYeni Üye Kayıt
          Şifremi UnuttumŞifremi Unuttum
FORUMLAR
 php nuke kurulum tam anla..
(6352 okuma, 5 yanıt)
 Ders 10: Form işlemleri-1..
(20308 okuma, 25 yanıt)
 DERS-3: Değişkenler..
(23612 okuma, 29 yanıt)
 DERS-1: PHP Derslerine Ba..
(19144 okuma, 23 yanıt)
 DERS-5: Program Denetleme..
(25842 okuma, 33 yanıt)
 DERS-2: PHP Yazım Kuralla..
(34712 okuma, 48 yanıt)
 DERS-9: Fonksiyonlar..
(10206 okuma, 10 yanıt)
 DERS-4: Matematik ve mant..
(11469 okuma, 12 yanıt)
 DERS-8: Diziler..
(21437 okuma, 29 yanıt)
 DERS-7: PHP ile Döngü İşl..
(33742 okuma, 52 yanıt)
 DERS-6: Program Denetleme..
(9420 okuma, 10 yanıt)
Netopsiyon Online: Forums
Netopsiyon Online :: Başlık görüntüleniyor - DERS-9: Fonksiyonlar
 AramaArama   RütbelerRütbeliler   ProfilProfil   GirişGiriş 


DERS-9: Fonksiyonlar

 
Bu forum kilitlendi: mesaj gönderemez, cevap yazamaz ya da başlıkları değiştiremezsiniz   Bu başlık kilitlendi: mesajları değiştiremez ya da cevap yazamazsınız    Netopsiyon Online Forum Ana Sayfa -> PHP -> PHP Dersleri
Önceki başlık :: Sonraki başlık  
Yazar Mesaj
Aliosman
Teknik Yönetici
Teknik Yönetici





Kayıt: Jul 20, 2002
Mesajlar: 3836
Konum: Balıkesir

MesajTarih: 2007-08-14, 12:09:49    Mesaj konusu: DERS-9: Fonksiyonlar Alıntıyla Cevap Gönder

Geldik işimize en çok yarayacak konulardan birine. Fonksiyonları size şöyle anlatacağım.
Diyelim ki büyük bir proje hazırlıyorsunuz. Sık kullanacağınız komutları bir fonksiyon içinde yazarak, gerektiğinde çağırırsınız. Fonksiyon çağrıldığı yerde içerisinde bulunan komutları işler. Çağrılmadan bir işlem yapmaz. Örneğin; sürekli veritabanı bağlantısı kullanıyorsanız bunu bir fonksiyona yazarak gerektiğinde çağırarak bağlantıyı kurmuş olursunuz. Bu size hem zamandan tasarruf hem de daha kısa kod yazmanızı sağlar.

Genel yazım şekli aşağıdaki gibidir.
Alıntı:

function fonksiyon_adi(degişken1,$değişken2….) {
yapılacak komutlar
}


İlk fonksiyonumuzu yazalım.

Kod:

function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}


Fonksiyon çağrılmadığı için ekranda hiçbir şey göstermez. Kodumuzu şu hale getirip sonucu gözlemleyelim.

Kod:

function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}

ilk_fonksiyon();


yada

Kod:

function ilk_fonksiyon() {
echo "Bu bizim ilk fonksiyonumuz";
}

echo ilk_fonksiyon();


Bu basit bir fonksiyondur. Şimdi fonksiyona değişken ile veri gönderelim.

Kod:

function ilk_fonksiyon($icerik) {
echo $icerik;
}

echo ilk_fonksiyon("Ne yazarsam onu göster bakayım");


Evet fonksiyona değer gönderdim. Şimdi biraz değişkenlerde gördüklerimizi hatırlayın ve aşağıdaki örneği inceleyin.

Kod:

function ilk_fonksiyon(&$icerik) {
$icerik.=" Online";
}
$ek="Netopsiyon";
ilk_fonksiyon($ek);
echo $ek;


Dersler zorlaşıyor diye düşünebilirsiniz. Haklısınız dersler zorlaşıyor. Çok fazla açıklama yapmama gerek yok. Eski dersleri takip ettiyseniz ve örnekleri tek tek inceledinizse bu dersleri anlamakta zorluk çekmezsiniz.

Kodumuza geri dönersek; Önce fonksiyon tanımladım. Fonksiyona değişkeni &$icerik gibi eklediğimi gördünüz. Bu durumu birazdan açıklayacağım. Sonraki satırda $icerik.= diyerek değişkenin devamını olarak gideceğini söyledim. Sonra $ek diye bir değişken tanımladım ve değer atadım. Fonksiyonu tanımladığım değişkenle çağırdım. Değişken içeriği fonksiyona gitti. Fonksiyonda kendisine gelen bu veriyi aldı ve $icerik adlı değişkenin başına ekledi. Sonrasında $ek adlı değişkenimizi çağırdım.

Off amma karışık oldu be. Very Happy

PHP’de şöyle bir olay var.

Kod:

$site="Netopsiyon";
$degisken="site";
echo $$degisken;


Bu kod bize Netopsiyon sonucu verecektir. Kodu aslında şöyle de yazabilirdiniz;

Kod:

$site="Netopsiyon";
echo $site;


İlk örnekteki $$ yazınca PHP $degisken adlı değişkenin site adlı bir değişkenin değerini aldığını bilecek ve onu gösterecektir. İlk örnekteki $$degisken yerine $degisken yazsaydık karşımıza site yazısı çıkacaktı. Bu yöntem sayesinde az bir kodla yüzlerce veriyi ekrana yazdırabiliriz.

Peki &$ olayı nedir? İki değişken arasındaki veri alışverişinin dinamik olmasını sağlar diyebilirim. Örnekleyelim;

Kod:

$site="Netopsiyon";
$degisken=&$site;
$site="Online";
echo $degisken;


Sonuca bakarsanız karşınıza Online gelecektir. Yani bakın değişken içeriğini alt tarafa yazdığımız bir başka değişkenle değiştirdim. Off amma kafanız karıştı Very Happy Peki olayı şöyle anlatayım. Birinci değişkenin tuttuğu değeri değiştirmeden, ikinci değişkene birinci değişkenin değerini dinamik olarak atadık. Dinamik atama nedeniyle birinci değişkenin değeri değiştiği anda ikinci değişkenin değeri de değişecektir. Biz ikinci değişkeni çağırdığımız sürece istediğimiz an değerleri değiştirebiliriz.

Kafa karıştırmaya devam etmeyeyim ve fonksiyonlara geri döneyim. Geriye doğru örneklere bakarsanız bir örnekte bu olayı kullandım. Şimdi fonksiyonlarla bir çarpma işlemi yapacağım.

Kod:

function carp($sayi1,$sayi2) {
return $sayi1*$sayi2;
}
echo carp(10,5);

Örnek hoş güzel oldu ancak ya ikinci sayıyı girmeyi unutursam ne olur? Tabii ki hata verecektir. Warning: Missing argument 2 for carp() in deneme.php online 2 gibi bir hata olması hoş olmaz. Bu durumu düşünerek birkaç alternatif üretin bakalım. Bu soruyu cevaplayanlar önceki konuları az çok öğrenmişlerdir.

Şimdi Global tanımlamaları görelim.

Şimdi şöyle bir örnek yazayım.
Kod:

$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
echo $icerik;
}
icerigi_cagir();


Fonksiyon dışında bir değişken tanımladım ve fonksiyon içinde değişkeni göster dedim. Ancak ekrana hiçbir şey çıkmadı. Çünkü değişkeni fonksiyonda tanımlamadık. Değişkeni fonksiyonda tanımlamadan kullanmanın yolu yok mu? Elbette var. global tanımlama yöntemi. Örneği şu hale getirelim.

Kod:

$icerik="PHP Derslerinde Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $icerik;
echo $icerik;
}
icerigi_cagir();


İşte sonuç karşımızda. Fonksiyon dışında birden fazla değişkeni fonksiyona atayalım şimdi. Bu işlem için her değişken arasına global tanımlamada virgül kullanırız.

Kod:

$ders="PHP Derslerinde";
$konumuz="Fonksiyonları İşliyoruz";
function icerigi_cagir() {
global $ders, $konumuz;
echo "$ders $konumuz";
}
icerigi_cagir();



Kod:

function degisken_cikar() {
$topla=0;
$topla++;
echo $topla." ";
}

degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();


Bu örneği çalıştırırsak karşımıza "1 1 1 1" gelecektir. Fonksiyonu 4 defa çağırdığım için bu hale geldi. Ancak $topla++; bir işe yaramadı. Ben 1 2 3 4 çıkmasını istiyorum. Bakın bu durumda örneği ne hale getiriyorum.

Kod:

function degisken_cikar() {
static $topla=0; //static ekledim.
$topla++;
echo $topla." ";
}

degisken_cikar();
degisken_cikar();
degisken_cikar();
degisken_cikar();


İşte benim istediğim buydu. Burada static ile değişkeni fonksiyon dışına çıkarmak için bir ön hazırlık yapıyoruz ve fonksiyon her çağrıldığında değerin bir artmasını sağlıyoruz.

Örnekleri biraz geliştirmeye çalışın.
Örneğin global kullanarak basit bir toplama yapalım.

Kod:

$x=2;
$y=20;
$z=8;
function topla() {
global $x,$y,$z;
echo "$x+$y+$z="." ".($x+$y+$z);
}
topla();


Fonksiyonlar şimdilik bu kadar. Bir sonraki dersimize kadar önceki derslere bir geri dönüş yapın. Onları bir inceleyin, örnekleri deneyin ve sonuçları not alın. Bir sonraki derste form işlemeye giriyoruz.
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder Yazarın web sitesini ziyaret et
Bu Site Google Adsense ile Gelir Elde Ediyor









Tarih: 2024-11-23, 23:11:34    Mesaj konusu: Forum Arası Reklamlar


Başa dön
yenibir
Mesaj: 500+
Mesaj: 500+





Kayıt: Nov 08, 2005
Mesajlar: 757
Konum: Sivas

MesajTarih: 2007-08-14, 13:51:08    Mesaj konusu: Alıntıyla Cevap Gönder

Kod:


function andyou_seo($s) {
$tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç'); // Türkçe Karakterler
$eng = array('s','S','i','I','g','G','u','U','o','O','C','c'); // ingilizce karakterler
$s = str_replace($tr,$eng,$s);
$s = eregi_replace('[^0-9A-Za-z]',"-",$s); // alfabe içinde farklı bişey boşluk falan düzelt
for($i=0;$i <= 15; $i++) {
$s = str_replace("--","-",$s);
}
return strtolower($s);




Türkçe Karakterleri Aldık ingilizceye Karaktere çevirdik Aradaki Boşluk ve Ascii karakterleri temizleyip - ye dönüştürdük

Temiz Bir Seo yapmak için ilk adımlar ...
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder MSN Messenger
KISASLI
Mesaj: 300+
Mesaj: 300+





Kayıt: May 19, 2007
Mesajlar: 423
Konum: Niye Bize mi Gelecen

MesajTarih: 2007-08-14, 14:30:08    Mesaj konusu: Alıntıyla Cevap Gönder

Kod:

$kitap="Php Tasarım";
$yazar="Hakkı Öcal";
$sayfa="113";

function kitap()
     {
global $kitap, $yazar, $sayfa;
echo "$kitap Kitabımız $sayfa Sayfa Olup $yazar Tarafından Yazılmıştır";

}
kitap();

umarım dogrudur
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder Yazarın web sitesini ziyaret et
is-mail
Mesaj: 500+
Mesaj: 500+





Kayıt: Feb 07, 2006
Mesajlar: 908
Konum: İstanbul

MesajTarih: 2007-08-14, 14:34:21    Mesaj konusu: Alıntıyla Cevap Gönder

Kod:

$sayi1 = $_POST["veri1"];
$sayi2 = $_POST["veri2"];
function hesap_makinesi(){
global $sayi1,$sayi2;
if ($_POST["islem"] == "toplama"){
$hesapla = $sayi1 + $sayi2;
echo $hesapla;
}elseif ($_POST["islem"] == "cikarma"){
$hesapla = $sayi1 - $sayi2;
echo $hesapla;
}elseif ($_POST["islem"] == "bolme"){
$hesapla = $sayi1 / $sayi2;
echo $hesapla;
}elseif ($_POST["islem"] == "carpma"){
$hesapla = $sayi1 * $sayi2;
echo $hesapla;
}else
echo "değer girmeden nasıl işlem yapalım :))";
}
hesap_makinesi();
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder
Aliosman
Teknik Yönetici
Teknik Yönetici





Kayıt: Jul 20, 2002
Mesajlar: 3836
Konum: Balıkesir

MesajTarih: 2007-08-14, 18:16:18    Mesaj konusu: Alıntıyla Cevap Gönder

Evet yok mu başka anlayan?
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder Yazarın web sitesini ziyaret et
serkanyilmaz303
Mesaj: 100+
Mesaj: 100+





Kayıt: Aug 14, 2005
Mesajlar: 140
Konum: Ankara

MesajTarih: 2007-08-15, 01:10:43    Mesaj konusu: Re: DERS-9: Fonksiyonlar Alıntıyla Cevap Gönder

Kod:

$sinav1ogrenciler = array ("1" , "1", "2", "2") ;

$sinav2ogrenciler = array ("1" , "3", "4", "5") ;

$ogrenciler = array (

array ( adi => "Hasan", soyadi => "ÇAKMAK", not

=>"$sonuc"),

array ( adi => "Mahir", soyadi => "ERTAN",

not=>"$sonuc"),

array ( adi => "Halil", soyadi => "YAPAR", not

=>"$sonuc"),

array ( adi => "Meral", soyadi => "TAMER", not

=>"$sonuc"),

);

function deneme()
     {
global $sinav1ogrenciler, $sinav2ogrenciler,

$ogrenciler;

for($x=0;$x<=3;) {

$sonuc = ($sinav1ogrenciler[$x] +

$sinav2ogrenciler[$x])/2;

echo "<li><i>Öğrenci Adı : </i>";

echo  $ogrenciler[$x][adi];

echo " ";

echo  $ogrenciler[$x][soyadi];

echo "---";

echo "Aldığı Not : ";

echo ceil($sonuc);

echo "---";

$x++;

if($sonuc>=3) {

echo "<u><i>Tebrikler! Dersten

geçtiniz!</i><br><br></u>";

} elseif ($sonuc<=1 ) {

echo "<u><i>Bu dersten bütünlemeye

kaldınız!</i><br><br></u>";

} elseif ($sonuc=2 ) {

echo "<u><i>Dersten sorumlu geçtiniz!</u></i><br><br>";

}

}

}

deneme();


Tüm konularımızı kapsar şekilde bişeyler yazmaya çalıştım.
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder
Aliosman
Teknik Yönetici
Teknik Yönetici





Kayıt: Jul 20, 2002
Mesajlar: 3836
Konum: Balıkesir

MesajTarih: 2007-08-26, 15:48:02    Mesaj konusu: Alıntıyla Cevap Gönder

Diğer anlayanlar örnekleri bekliyorum. Özellikle geçmişe dönük konuları da içerisine alan örnekleri tercih edin.
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder Yazarın web sitesini ziyaret et
Sercan
Mesaj: 1000+
Mesaj: 1000+





Kayıt: Jan 07, 2006
Mesajlar: 1719
Konum: İstanbuL //

MesajTarih: 2007-08-26, 16:58:56    Mesaj konusu: Alıntıyla Cevap Gönder

Kod:
<?
$site = "netopsiyon";
$amac = "webmaster platformu";
$nuke = "sitenin geneli nukeci";
function sercan()
{
global $site, $amac, $nuke;
echo "en sevdiğim site $site amacı ziyaretçilerini bilgilendirmek bir $amac olarak fakat $nuke yaklaşık 4 senedir hatta 5 mi oldu :) hizmette kusur etmemekte...";
}
sercan();
?>

yanlız
Kod:
echo en sevdiğim site $site amacı ziyaretçilerini bilgilendirmek bir $amac olarak fakat $nuke yaklaşık 4 senedir hatta 5 mi oldu :) hizmette kusur etmemekte...;

şeklinde yazdığımda hata verdi :)
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder Yazarın web sitesini ziyaret et
Bu Site Google Adsense ile Gelir Elde Ediyor









Tarih: 2024-11-23, 23:11:34    Mesaj konusu: Forum Arası Reklamlar


Başa dön
Aliosman
Teknik Yönetici
Teknik Yönetici





Kayıt: Jul 20, 2002
Mesajlar: 3836
Konum: Balıkesir

MesajTarih: 2007-08-26, 17:39:33    Mesaj konusu: Alıntıyla Cevap Gönder

hata vermesi normal sercan. Çünkü echo da sadece değişken çağırmıyorsun. Yazı da yazıyorsun. Yazı yazdığın için tırnak içine almalısın.
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder Yazarın web sitesini ziyaret et
deringeyik
Mesaj: 1+
Mesaj: 1+





Kayıt: Nov 20, 2007
Mesajlar: 1

MesajTarih: 2007-12-14, 22:49:21    Mesaj konusu: Alıntıyla Cevap Gönder

Sağol Aliosman kardeş... devamı nezaman gelecek suana kadar php ile ilgili kaynakların bir coğu nerdeyse anlatılan öğretilen şeyler hep aynı .... umarım sende diğerleri gibi yarıda bırakmazsın Sad
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder
RadresS
Mesaj: 1+
Mesaj: 1+





Kayıt: Feb 08, 2005
Mesajlar: 3
Konum: Çanakkale

MesajTarih: 2008-07-31, 11:45:42    Mesaj konusu: Alıntıyla Cevap Gönder

10. Derse Taşıdım :)
Başa dön
Kullanıcının profilini görüntüle Özel mesaj gönder
Önceki mesajları göster:   
Bu forum kilitlendi: mesaj gönderemez, cevap yazamaz ya da başlıkları değiştiremezsiniz   Bu başlık kilitlendi: mesajları değiştiremez ya da cevap yazamazsınız    Netopsiyon Online Forum Ana Sayfa -> PHP -> PHP Dersleri Tüm zamanlar GMT + 3 Saat
1. sayfa (Toplam 1 sayfa)

 
Geçiş Yap:  
Bu forumda yeni başlıklar açamazsınız
Bu forumdaki başlıklara cevap veremezsiniz
Bu forumdaki mesajlarınızı değiştiremezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu forumdaki anketlerde oy kullanamazsınız

Benzer Konular

Başlık Yazar Forum Cevaplar Tarih
Yeni mesaj yok DreamWeaver ve WampServer entegrasyon... Bankocu MySQL & phpMyAdmin 0 2009-05-17, 14:08:02 Son Mesajı Görüntüle
Yeni mesaj yok Grafik, grafik tasarım kursu ( Kurs, ... cenker_birdag Çöp Kutusu 2 2008-06-25, 10:33:44 Son Mesajı Görüntüle
Yeni mesaj yok Java (j2ee, j2me&#41; Eğitim, Kur... cenker_birdag Diğer Diller 1 2008-06-19, 09:28:12 Son Mesajı Görüntüle
Bu başlık kilitlendi: mesajları değiştiremez ya da cevap yazamazsınız PHP Eğitim, Kurs, Ders cenker_birdag Çöp Kutusu 2 2008-05-25, 11:46:42 Son Mesajı Görüntüle
Yeni mesaj yok Sabit: Ders 10: Form işlemleri-1 Aliosman PHP Dersleri 25 2008-05-06, 14:34:38 Son Mesajı Görüntüle

Copyright © 2002-2024 Netopsiyon Bilişim Teknolojileri San. Tic. Ltd.Şti. - Bütün hakları saklıdır!
Bu site Netopsiyon.com.tr Sunucularında Barındırılmaktadır.
Netopsiyon Bilişim Teknolojileri San. Tic. Ltd.Şti. Netopsiyon Copyright