lostyazilim
tr.link

Require ile eklediğim sayfadaki değişkeni fonksiyon içinde kullanamıyorum

10 Mesajlar 1.088 Okunma
lstbozum
tr.link

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Merhabalar,
"Sayfalar.php" isimli sayfaya require ile "Lang.php" sayfasını çağırıyorum. Bu lang.php sayfasında bir dizi (array) var. Ben bunu sayfalar.php sayfasında kullanabiliyorum ama sayfalar.php'nin içinde oluşturduğum bir fonksiyonda kullanamıyorum. Bunun nedeni nedir?

sayfalar.php


require("lang/lang.php"); //Dil sayfası

echo $lang["hello"]; //Örnek 1 (Başarılı. Sonuç: merhaba)

function sayfalar(){
$get = $_GET["sayfa"];

Switch ($get){

case "profile":
echo $lang["profile"]; //Örnek 2 (başarısız. sonuç: boş)
break;

default:
echo $lang["no-page"]; //Örnek 3 (başarısız. sonuç: boş)
break;
}
}




Lang.php


$lang = array(
"hello" => "merhaba",
"profile" => "profil",
"no-page" => "sayfa yok",
);




Gördüğünüz gibi örnek 1'de sonuç başarılıyken, sayfalar() fonksiyonunun içinde kullanılan örnek 2 ve örnek 3 başarısız oluyor. Fonksiyonun içindeyken Dizi elemanını görmüyor...
 

 

wmaraci
reklam

YORci YORci yorci.com Kullanıcı
  • Üyelik 06.02.2016
  • Yaş/Cinsiyet 29 / E
  • Meslek Arkaplan Yazılım
  • Konum Ankara
  • Ad Soyad I** Y**
  • Mesajlar 261
  • Beğeniler 88 / 127
  • Ticaret 21, (%100)

$lang = require("lang/lang.php"); //sayfalar.php



return array(
"hello" => "merhaba",
"profile" => "profil",
"no-page" => "sayfa yok",
); // lang.php.


Böyle yaparsan kullanabilirsin, yok yine de eski usul kullanacağım dersen function sayfalar() use ($lang) {... yaparsan kullanabilirsin.
mehmet01

kişi bu mesajı beğendi.

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)
Fonkison içinde değişken kullanmak için

Ya fonksiyon parametresi yapacaksın.

Yada değişkeni global yapacaksın.
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)

YORÇI adlı üyeden alıntı


$lang = require("lang/lang.php"); //sayfalar.php



return array(
"hello" => "merhaba",
"profile" => "profil",
"no-page" => "sayfa yok",
); // lang.php.


Böyle yaparsan kullanabilirsin, yok yine de eski usul kullanacağım dersen function sayfalar() use ($lang) {... yaparsan kullanabilirsin.


Öncelikle çok teşekkür ederim cevabınız için.

$lang = require("lang/lang.php"); şeklinde kullanmak daha çok işime geldi. Ama yine faydası olmadı malesef... Yine benim önceden kullandığım yöntemle aynı.
Bir de çoklu dil sistemini fonksiyona atayıp yapmaya çalışayım. sistemi daha çok yoracakmış gibi geliyor ama en azından işe yarar
 

 

wmaraci
wmaraci

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)

SancarSaran adlı üyeden alıntı

Fonkison içinde değişken kullanmak için

Ya fonksiyon parametresi yapacaksın.

Yada değişkeni global yapacaksın.


Hocam Lang.php sayfasında "global $lang= array(..." şeklinde $lang değişkenini global yapmıştım ama olmamıştı. Fonksiyon sayısı da fazla, her biri için uğraşmamak gerek sanırım çoklu dil eklemek
 

 

HAYIRSEVER HAYIRSEVER Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 21.05.2018
  • Yaş/Cinsiyet 34 / E
  • Meslek Back-End
  • Konum İzmir
  • Ad Soyad Y** A**
  • Mesajlar 216
  • Beğeniler 46 / 48
  • Ticaret 7, (%86)
mehmet01 hocam yok böyle birşey ya kimse mi görmüyor anlamıyorum ki :) Ezbere şeyler yazılıp durulmuş sürekli.


$lang = array(
"hello" => "merhaba",
"profile" => "profil",
"no-page" => "sayfa yok",
);

bu kullanım hatalı hocam dizide son kısımda virgül olmaz yani şununla degiştirin.

$lang = array(
"hello" => "merhaba",
"profile" => "profil",
"no-page" => "sayfa yok");
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
HAYIRSEVER hocam alakası yok onunla. Her iki şekilde de kullanılabiliyor. ama yine de söylediğiniz şekilde yaptım yine olmadı. Onunla alakası yok yani :)

YORÇI hocam, her iki yönteminizi de denedim olmadı.

Arkadaşlar her case'e ayrı ayrı require yaptım dil sayfasını. Bu şekilde hallettim. Yardımlarınız için teşekkürler...

Switch ($get){

case "profile":
require("lang/lang.php"); //Dil sayfası
echo $lang["profile"]; //Örnek 2 (başarısız. sonuç: boş)
break;

default:
require("lang/lang.php"); //Dil sayfası
echo $lang["no-page"]; //Örnek 3 (başarısız. sonuç: boş)
break;
}

şeklinde oldu.
 

 

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)
He makinadaki php saç kesimini beğenmedi ondan sana kıllık yapıyor.

lang.php
$lang['no-page'] = 'aradığın sayfa burda yok, çarşı gitti';

?>

include(lang.php);

echo print_r($lang,true)."\n";

Buda globalli versiyonu

lang.php
$GLOBALS['lang']['no-page'] = 'aradığın sayfa burda yok, çarşı gitti';

?>

include(lang.php);

function hede() {
echo print_r($GLOBALS['lang'],true)."\n";
}

hede();

eski ben olsam statik class lı versiyonunu yaparim

glb_class.php
class glb {
public static $lang;
public static $myLang;
}

glb::$myLang = 'tr';
glb::$lang = new \stdClass();

glb::$lang->tr = new \stdClass();
glb::$lang->en = new \stdClass();
?>

lang_tr.php

glb::$lang->tr->no_page = 'Aradığın sayfa burada yok. Pazara gitti';
?>

lang_en.php

glb::$lang->en->no_page = 'The page you have searching was go to school';
?>

echo glb::$lang->{glb::$myLang}->no_page;
glb::$myLang = 'en';
function hodo() {
echo glb::$lang->{glb::$myLang}->no_page;
}

şimdi bakıyorum kullandığım framework te ne varsa onu kullanıyorum. İşim gücüm yok tekerlekmi icad edicem.
 

 

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)

HAYIRSEVER adlı üyeden alıntı

mehmet01 hocam yok böyle birşey ya kimse mi görmüyor anlamıyorum ki :) Ezbere şeyler yazılıp durulmuş sürekli.


$lang = array(
"hello" => "merhaba",
"profile" => "profil",
"no-page" => "sayfa yok",
);

bu kullanım hatalı hocam dizide son kısımda virgül olmaz yani şununla degiştirin.

$lang = array(
"hello" => "merhaba",
"profile" => "profil",
"no-page" => "sayfa yok");


Gerek yoktur sonda virgüle ancak unutulsa da sorun olmaz. Çalışır zaten başarılı bir çıktı almış fonksiyon dışında.
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
SancarSaran O kadar kapsamlı kod bilgim yok, sınıflardan pek anlamıyorum henüz, kendi kodlarımla çözdüm işi. Yine de teşekkür ederim ilginiz için... :)

Okan_IŞIK evet, denemiştim ben de zaten, her iki şekilde de çalışıyor. Yine de teyit ettiğiniz için teşekkür ederim...
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al