wmaraci reklam

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

10 Mesajlar 931 Okunma
pst.net
wmaraci reklam

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 664
  • Beğeniler 327 / 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 51 / 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 664
  • Beğeniler 327 / 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
Mersin evden eve nakliyat

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 664
  • Beğeniler 327 / 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 33 / 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 664
  • Beğeniler 327 / 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 51 / 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.
 

 

Okanisik Okanisik Vip Tema Web Tasarım A.Ş. Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1381
  • Beğeniler 703 / 702
  • 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.
 

 

Vip Tema Web Tasarım A.Ş.

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 664
  • Beğeniler 327 / 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...
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al