مشکل تغییر نکردن متغیر در php

بازدید29.7kپست ها1آخرین فعالیت10 سال پیش
0
0

سلام من یه تابع ساده نوشتم که اسمو میگیره و یه hello بهش اضافه میکنه ولی در نهایت تعجب مقدار متغیر تغییر نمیکنه من قبلا انجام دادم کار میکرد!

کد

<?php
function hello($name)
{
    $name= 'hello '.$name;
}
$tname="trofun";
hello($tname);
echo $tname;
?>

خروجی trofun میده بازم!
گیج شدم لطفا کمک کنید!

0

سلام
احتمالا کدشما اینطوری نبوده این کد غیر ممکنه بجز مقدار اولیه متغیر name$ چیز دیگه ای نشون بده!

باید یکی از کارهای زیر رو اجرا کنید:

1- by reference کردن پارامتر(passed by reference):
درحالت عادی پارامترها by value هستن یعنی وقتی مقدار آرگومان ها در داخل متغیر تغیر کنه مقدار متغیرهای بیرون از تابع تغییر نمیکنه.
اگر بخوایم کاری کنیم که مقدارشون تغیر کنه باید پارامتر رو by reference کنید، برای by reference کردن کافیه یه علامت امپرسند(&) قبل از پارامتر بذارید:

<?php
function hello(&$name)
{//------------^
    $name= 'hello '.$name;
}
$tname="trofun";
hello($tname);
echo $tname;
?>

PHP code - 9 lines - codepad

**2- [color=#0000ff]echo[/color] کردن هنگام فراخوانی
**

<?php
function hello($name)
{
    $name= 'hello '.$name;
    return $name;
}
$tname="trofun";
echo hello($tname);
?>

PHP code - 9 lines - codepad

3- [color=#0000ff]echo[/color] کردن در داخل تابع

<?php
function hello($name)
{
    echo $name= 'hello '.$name;
}
$tname="trofun";
hello($tname);
//echo $tname;
?>

PHP code - 9 lines - codepad

4-استفاده از [color=#0000ff]GLOBAL[/color]

<?php
function hello()
{global $tname;
    $tname= 'hello '.$tname;
}
$tname="trofun";
hello();
echo $tname;
?>

PHP code - 9 lines - codepad

احتمالا کدی که قبلا اجرا کردید یکی از مثالهای بالا بوده.
موفق باشید.

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.