برچسب: استاد خصوصی PHP

  • کار با Complex (curly) syntax در PHP

    توی زبون های مختلف وقتی با رشته ها کار میکنیم ممکنه بخوایم یه استرینگ رو مثلا اکو کنیم یا هر کار دیگه ای و داخل اون استرینگ یه متغیر هم باشه. توی PHP میتونید رشته رو توی دبل کوتیشن بذارید و رشته بصورت رندر شده داخل استرینگ نشون داده میشه. یه همچین چیزی منظورم هست:

    <?php
    $name = "Hamid";
    echo "My name is $name";
    
    // output: My name is Hamid

    ولی یسری مواقع هست که شما میخواید از یک آرایه ی Associative مقدار بکشی بیرون. فرض کنید از یه ریکوعست داده اومده واستون و میخواید داده ای که از $_GET اومده رو مستقیما توی رشته چاپ کنید. (این یه مثاله و قطعا توی این موارد بهتره validation انجام بشه).

    <?php
    
    echo "My name is $_GET['name']";
    
    // output: Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in strings.php on line 3

    توی همچین دو تا راه سخت دارید. یکی از سختا اینه که مقدار رو بیرون از رشته بگیرید داخل یه متغیر ذخیره کنید و بعد اونو بذارید داخل رشته که یدونه الکی متغیر هدر میره:

    <?php
    
    $name = $_GET['name'];
    echo "My name is $name";

    راه دوم سخت تر اینه که رشته ها رو بچسبونید به متغیر به این صورت که کار رو یکم سخت میکنه:

    <?php
    
    echo "My name is $name" . $_GET['name'];

    ولی راه قشنگتر اینه که از Complex (curly) syntax استفاده کنید که در میشه آرایه های Associative هم توی استرینگ مستقیم رندر کرد.

    <?php
    
    $user = [
        'name' => 'Hamid',
        'age' => 29
    ];
    echo "My name is {$user['name']} and I am {$user['age']} years old.";
    
    // output: My name is Hamid and I am 29 years old.

    میبینید که چقد شیک و ساده میشه اینکارو کرد توی ورژن های جدید PHP.

    شاد باشید 🙂