Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:62:\"Non-static method view::load() should not be called statically\";s:5:\"%file\";s:93:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/views.module\";s:5:\"%line\";i:879;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:109:\"Declaration of views_handler_argument::init() should be compatible with views_handler::init(&$view, $options)\";s:5:\"%file\";s:116:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/handlers/views_handler_argument.inc\";s:5:\"%line\";i:745;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:137:\"Non-static method views_many_to_one_helper::option_definition() should not be called statically, assuming $this from incompatible context\";s:5:\"%file\";s:128:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/handlers/views_handler_argument_many_to_one.inc\";s:5:\"%line\";i:36;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:137:\"Non-static method views_many_to_one_helper::option_definition() should not be called statically, assuming $this from incompatible context\";s:5:\"%file\";s:128:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/handlers/views_handler_argument_many_to_one.inc\";s:5:\"%line\";i:36;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:134:\"Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state)\";s:5:\"%file\";s:114:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/handlers/views_handler_filter.inc\";s:5:\"%line\";i:589;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:130:\"Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state)\";s:5:\"%file\";s:114:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/handlers/views_handler_filter.inc\";s:5:\"%line\";i:589;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:154:\"Declaration of views_handler_filter_boolean_operator::value_validate() should be compatible with views_handler_filter::value_validate($form, &$form_state)\";s:5:\"%file\";s:131:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/handlers/views_handler_filter_boolean_operator.inc\";s:5:\"%line\";i:149;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:130:\"Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state)\";s:5:\"%file\";s:109:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/plugins/views_plugin_row.inc\";s:5:\"%line\";i:135;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128

Warning: Table './PROGRAMCIYIMNET3/watchdog' is marked as crashed and should be repaired query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:14:\"strict warning\";s:8:\"%message\";s:126:\"Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state)\";s:5:\"%file\";s:109:\"/var/www/vhosts/programciyim.com/httpdocs/sites/all/modules/views-6.x-2.11/views/plugins/views_plugin_row.inc\";s:5:\"%line\";i:135;}', 3, '', 'http://www.programciyim.com/content/ders9-php-ders-notlari-ve-ders-anlatimi-phpde-dongu-kullanimi', '', '54.166.74.94', 1481401177) in /var/www/vhosts/programciyim.com/httpdocs/includes/database.mysqli.inc on line 128
DERS9 - PHP Ders Notları ve Ders Anlatımı - PHP'de Döngü Kullanımı | Programciyim.com

DERS9 - PHP Ders Notları ve Ders Anlatımı - PHP'de Döngü Kullanımı

Etiketler: 

Bu dersimizde php programlama dilinde döngü cümleciklerini kullanarak program yazmayı öğreneceğiz.

Döngü: yazdığımız bir kodun belirli bir koşul sağlandıkça tekrarlanmasını sağlayan yapıdır.

Örneğin, web sayfamızın "üyeol.php" sayfasında üyenin doğum tarihi bilgisini combobox'tan (açılır liste menüsü) seçmesini isteyecek olalım.

Combobox'ta 1950'den 2010'a kadar tarihlerin bulunmasını isteyelim.

Döngü kullanmadan Açılır Liste (combobox ) ile Doğum Yılı Bilgisi

HTML  kodu:

<html>
<head>
<title>PHP DERSLERI - WWW_PROGRAMCIYIM_COM</title>
</head>
<body>
  <select name="select" id="select">
    <option>1950</option>
    <option>1951</option>
    <option>1952</option>
    <option>1953</option>
    <option>1954</option>
    <option>1955</option>
    <option>1956</option>
    <option>1957</option>
    <option>1958</option>
    <option>...</option>
    <option>1999</option>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    <option>2003</option>
    <option>2004</option>
    <option>2005</option>
    <option>2006</option>
    <option>2007</option>
    <option>2008</option>
    <option>2009</option>
    <option>2010</option>
  </select>
</body>
</html>
 

 Bu HTML kodunu "calisma" dizinimize kaydedip tarayıcımızda çıktısına baktığımızda aşağıdaki görüntüyü elde ederiz. (Dikkat ettiyseniz döngü olmadan yazmak çok uzun olduğu için aradaki değerleri "..." ile yazılmış saydım.)

   Varsayılan olarak ilk liste elemanını görüyoruz.

Bu combobax'a tıkladığımızda içindeki değerleri görürüz.

Elde ettiğimiz çıktı,  döngüsüz bir şekilde, liste elemanlarının tamamını tek tek yazarak elde edilmiştir.

Şimdi bu kodu php'ye çevirelim ve döngü kullanalım.

  1. Yukarıdaki örneğimizi metin editörümüzde açalım.
  2. "Ctrl+F" tuş kombinasyonuna basarak arama kutusunu açalım. Arama kutusundan "Yer Değiştirme" sekmesine geçelim.  Aranacak kelime kısmına bir tane çift tırnak işareti (") yazalım. Ne ile değiştirilecek kısmına da ters slaş ve çift tırnak işaretlerini yazalım. (\") Ardından tümünü değiştire tıklayalım ve çıkalım.
  3. Tüm kodu kopyalayalım.
  4. Yeni boş bir sayfa açıp içerisine
  5. <?php echo ""; ?> yazalım.
  6. Ardından mouse ile "" işeretlerinin arasına tıklayıp bu araya yapıştıralım.
  7. Sayfayı kaydedip çıktısına bakalım. PHP' çevrilmiş kod aşağıdadır.

KOD (php):

<?php
echo"<html>
<head>
<title>PHP DERSLERI - WWW_PROGRAMCIYIM_COM</title>
</head>
<body>
  <select name=\"select\" id=\"select\">
    <option>1950</option>
    <option>1951</option>
    <option>1952</option>
    <option>1953</option>
    <option>1954</option>
    <option>1955</option>
    <option>1956</option>
    <option>1957</option>
    <option>1958</option>
    <option>...</option>
    <option>1999</option>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    <option>2003</option>
    <option>2004</option>
    <option>2005</option>
    <option>2006</option>
    <option>2007</option>
    <option>2008</option>
    <option>2009</option>
    <option>2010</option>
  </select>
</body>
</html>
";
?>

Çıktı:

Dikkat ederseniz HTML ile PHP kodları tamamen aynı çıktıyı vermektedir.

Şu anda kodumuz php dilinde ve döngüsüz. Şimdi de kodumuzu döngüye çevirelim.

KOD:(php döngülü)

<?php
echo"<html>
<head>
<title>PHP DERSLERI - WWW_PROGRAMCIYIM_COM</title>
</head>
<body>
  <select name=\"select\" id=\"select\">";
  for($i=1950;$i<=2010;$i++)
    echo    "<option>$i</option>";
    
  echo"</select>
</body>
</html>
";
?>

Çıktı:

Çıktıdan da gördüğümüz gibi döngü kullanarak çok uzun bir listeyi çok kısa bir şekilde görüntüleyebildik. Ayrıca çok uzun olduğu için yazamadığım ara değerler için üç noktayı "..." bu çıktıda görmüyoruz. Çünkü yıl aralığı ne olursa olsun tüm değerleri döngümüz bizim yerimeze yazmaktadır. Böylece bizi büyük bir zahmetten kurtarmaktadır.

Şimdi de kodumuzun son haline göz atalım ve döngü satırını açıklayalım.

 Döngüsüz php kodunda 8 ile 29. satırlarda tek tek el ile yazdığımız satırlar yerine, döngülü kodda üç-dört satırlık bir döngü yazıldığına dikkat ediniz.

Programlama dillerinde bazı temel döngü cümlecikleri vardır. Bunlar for döngüsü, while döngüsü, do-while döngüsü...ve benzerleridir.

Bizim örneğimizde for döngüsünü kullandık.

for döngüsü içerisine 3 parametreyi aralarında noktalı virgüllü olarak alır. ilk parametre başlangıç değerini, ikinci parametre döngünün bitmesi için gereken şartı, son parametrede başlangıç değeri olarak verilen değişkenin artış miktarı bilgisidir.

  for($i=1950;$i<=2010;$i++)  

satırında $i=1950 başlangıç değerli değişken, $i<=2010 döngünün sonlanma
şartı, $i++ da artışın birer birer olacağını belirtir.

echo    "<option>$i</option>";

satırı da döngünün tekrar edeceği kod parçasıdır. Tek bir satır olduğu için süslü
parantezler arasına yazılmak zorunda değildir. Eğer tekrar etmesini istediğimiz kodlar birden fazla ise süslü parantezler ({}) arasında yazarız.

<option>...</option> etiketi combobox'ın içene eleman ekleyen alt etikettir. Biz her döngüde bu etiketler arasına döngü değişken değerimiz olan "$i" değişkenimizi yazdırdır. Böylece döngü her çalıştığında combobox'a bir eleman eklemektedir. Döngü sonlandığında ise istediğimiz aralıktaki tüm değerleri eklemiştir.

DERS10 - PHP'de Fonksiyon Kullanımı