මචන්ලා අදත් මට වෙනද වගේම ලෙකු php කේස් එකක්...

අද ප්රශ්නේ.. php variable value parsing problem එකක් ගැන.
මෙන්න මේක තමයි අවුල...
මට ඕන php variable කීපයකට dynamically values asign කරන්න.. හැබැයි මේක මට නිකන් පිස්සු වගේ.. මෙදේට හේතුව මගේ script එක ලියපු විදියට.. ඒ මුලු script එකම වෙනස් කරන්නත් බෑ.. 

මට ඕන මෙන්න මේකයි මචන්ලා...
මෙන්න මේ ආකාරයේ.. function එකක් තියෙනවා..
function print($firstName, $lastName){
echo $firstName.$lastName;
}
දැන් අපිට පුලුවන්නේ.. මේවිදියට ඉහත function එකේ parameters වලට values asign කරන්න...
print('Malaka','Silva');
දැන් ඉතින් ඔය ඉහත විදියට parameters දීල function එක call කරාම අවුලක් නැතිව වැඩේ වෙනවනේ.. එතනට එනකම් මට ගැටලුවක් නෑ... නමුත් මගේ script එකේ structure එකේ තියෙන මඥ්ඥං බව නිසා.. මට මේවගේ පිස්සු වැඩක් කරන්න ඕන වෙලා තියෙනවා...
මගේ තියෙනවා.. Index.php file එකක්..ඒක මේවගේ..
<?php
require 'basic_functions.php'; // this file has print function
// print title position
// print header position
print('Malaka','Silva');
if (empty($_GET['page'])) {
echo "defualt root index page ";
} else{
$page = $_GET['page'];
switch ($page)
{
case "red":
echo "Your favorite color is red!";
print('Janaka','Saliya');
break;
case "blue":
echo "Your favorite color is blue!";
print('Ranuka','Silva');
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, or green!";
} // end switch selection block
}
// other elements calling
// other elements calling
?>
ඔය ඉහත් index php file එකට මචන් require මගින්.. print function එක තියෙන basic_functons.php කියන file එක call කරල තියෙන්නේ... ඔය ඉහත.. index file එකේ..
// print header position එකට යටින් තියෙනවනේ.. මේ වගේ statement එකක්...print('Malaka','Silva'); මෙන්න මෙතන තමයි මචන්.. මට හැම පේජ් එකේදිම මේ function එක වැඩ කරන්න ඕනේ..
නමුත් බලන්න. මම ඔය switch selection block එකේත්.. ඔය විදියට print() function එක විවිද parameters දාල කෝල් කරා තියෙනවා.. එතකොට.. ඒඒ page index එකේදී..
උදා-
example.com/?page=red
example.com/?page=blue
අර print(); function එක වැඩ කරනවා.. නමුත් මට ඕන ඒ ඒ තැන් වල වැඩ නොකර.. අර ඉහත // print header position මෙන්න මේ තැනට පහලින් තියෙන තැන වැඩකරන්න..
මට ඕන.. ඒ ඒ switch statement එකේදී විවිද parameters මේ print() එකට දෙන්න.. හැබැයි ඒවා ඒ තැන්වලම වැඩ නොකර අර ඉහත තැනදී විතරක් වැඩ කරන්න තමයි.. ඕන...
මම දන්නවා.. function එකක් call කරාම ඒ ස්තානයේ තමයි වැඩ කරන්නේ කියලා...
මට ඕන. මේවිදියට නැතත් වෙන විදියකට වරි මේ දේ කරගන්න..
මචන් මේ ප්රශ්නෙදි නම් මම මාර විදියට වැටිල ඉන්නේ... මේකට උදව්වක් කරන්.. මට පුලුවන් විදියට මම ප්රශ්ණය පැහැදිලි කරා.. ඔයාලට තේරුනා කියලා හිතනවා...


ඔයාල මේක localhost එකේ test කරන්න.. මම සරල උදාහරණයක් හැදුව.. මේක download කරගෙන මට මේදේකරන හැටි කියල දෙන්න...
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


අද ප්රශ්නේ.. php variable value parsing problem එකක් ගැන. මෙන්න මේක තමයි අවුල...
මට ඕන php variable කීපයකට dynamically values asign කරන්න.. හැබැයි මේක මට නිකන් පිස්සු වගේ.. මෙදේට හේතුව මගේ script එක ලියපු විදියට.. ඒ මුලු script එකම වෙනස් කරන්නත් බෑ.. 

මට ඕන මෙන්න මේකයි මචන්ලා...
මෙන්න මේ ආකාරයේ.. function එකක් තියෙනවා..
function print($firstName, $lastName){
echo $firstName.$lastName;
}
දැන් අපිට පුලුවන්නේ.. මේවිදියට ඉහත function එකේ parameters වලට values asign කරන්න...
print('Malaka','Silva');
දැන් ඉතින් ඔය ඉහත විදියට parameters දීල function එක call කරාම අවුලක් නැතිව වැඩේ වෙනවනේ.. එතනට එනකම් මට ගැටලුවක් නෑ... නමුත් මගේ script එකේ structure එකේ තියෙන මඥ්ඥං බව නිසා.. මට මේවගේ පිස්සු වැඩක් කරන්න ඕන වෙලා තියෙනවා...
මගේ තියෙනවා.. Index.php file එකක්..ඒක මේවගේ..
<?php
require 'basic_functions.php'; // this file has print function
// print title position
// print header position
print('Malaka','Silva');
if (empty($_GET['page'])) {
echo "defualt root index page ";
} else{
$page = $_GET['page'];
switch ($page)
{
case "red":
echo "Your favorite color is red!";
print('Janaka','Saliya');
break;
case "blue":
echo "Your favorite color is blue!";
print('Ranuka','Silva');
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, or green!";
} // end switch selection block
}
// other elements calling
// other elements calling
?>
ඔය ඉහත් index php file එකට මචන් require මගින්.. print function එක තියෙන basic_functons.php කියන file එක call කරල තියෙන්නේ... ඔය ඉහත.. index file එකේ..
// print header position එකට යටින් තියෙනවනේ.. මේ වගේ statement එකක්...print('Malaka','Silva'); මෙන්න මෙතන තමයි මචන්.. මට හැම පේජ් එකේදිම මේ function එක වැඩ කරන්න ඕනේ..
නමුත් බලන්න. මම ඔය switch selection block එකේත්.. ඔය විදියට print() function එක විවිද parameters දාල කෝල් කරා තියෙනවා.. එතකොට.. ඒඒ page index එකේදී..
උදා-
example.com/?page=red
example.com/?page=blue
අර print(); function එක වැඩ කරනවා.. නමුත් මට ඕන ඒ ඒ තැන් වල වැඩ නොකර.. අර ඉහත // print header position මෙන්න මේ තැනට පහලින් තියෙන තැන වැඩකරන්න..
මට ඕන.. ඒ ඒ switch statement එකේදී විවිද parameters මේ print() එකට දෙන්න.. හැබැයි ඒවා ඒ තැන්වලම වැඩ නොකර අර ඉහත තැනදී විතරක් වැඩ කරන්න තමයි.. ඕන...
මම දන්නවා.. function එකක් call කරාම ඒ ස්තානයේ තමයි වැඩ කරන්නේ කියලා...
මට ඕන. මේවිදියට නැතත් වෙන විදියකට වරි මේ දේ කරගන්න..මචන් මේ ප්රශ්නෙදි නම් මම මාර විදියට වැටිල ඉන්නේ... මේකට උදව්වක් කරන්.. මට පුලුවන් විදියට මම ප්රශ්ණය පැහැදිලි කරා.. ඔයාලට තේරුනා කියලා හිතනවා...



ඔයාල මේක localhost එකේ test කරන්න.. මම සරල උදාහරණයක් හැදුව.. මේක download කරගෙන මට මේදේකරන හැටි කියල දෙන්න...

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Update!!! Sample script attached 
ඔය සරල උදාහරණයේ.. මචන් එක එක page index එකේදී.. එක එක <title></title> හැදේවී.. නමුත්.. ඒවා හැදෙන්නේ... <Body></body> එක ඇතුලේ.. මට ඕනේ.. ඒව <Head></head> එක ඇතුලේ හැදෙන්.. හැම පේජ් එකේම එකම තැනදී.. ඒකියන්නේ...<head></head> ටැග් ඇතුලේ යම් නිෂ්චිත ස්ථානයක.. මේක බලාගන්න.. page source code එක බලන්න..
මම දන්නවා.. function එකක call කරන තැන තැන තමයි.. ආදාල කෝඩ් එක generate වෙන්නේ... ඒක තමයි මේ අවුල... වෙනවිදියට හරි කමක් නෑ මේ දේකරන විදියට මට කියලා දෙන්න ලොකු උදව්වක්....

ඔය සරල උදාහරණයේ.. මචන් එක එක page index එකේදී.. එක එක <title></title> හැදේවී.. නමුත්.. ඒවා හැදෙන්නේ... <Body></body> එක ඇතුලේ.. මට ඕනේ.. ඒව <Head></head> එක ඇතුලේ හැදෙන්.. හැම පේජ් එකේම එකම තැනදී.. ඒකියන්නේ...<head></head> ටැග් ඇතුලේ යම් නිෂ්චිත ස්ථානයක.. මේක බලාගන්න.. page source code එක බලන්න..
මම දන්නවා.. function එකක call කරන තැන තැන තමයි.. ආදාල කෝඩ් එක generate වෙන්නේ... ඒක තමයි මේ අවුල... වෙනවිදියට හරි කමක් නෑ මේ දේකරන විදියට මට කියලා දෙන්න ලොකු උදව්වක්....
Last edited:


