Bird
Raised Fist0
Laravelframework~5 mins

Raw PHP in Blade (@php) in Laravel - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the @php directive in Blade templates?
The @php directive allows you to write raw PHP code inside Blade templates, letting you run PHP logic directly within your view files.
Click to reveal answer
beginner
How do you properly close a raw PHP block started with @php in Blade?
You close it with @endphp. Everything between @php and @endphp is treated as raw PHP code.
Click to reveal answer
beginner
Can you use multiple lines of PHP code inside a single @php block?
Yes, you can write multiple lines of PHP code inside a single @php ... @endphp block, just like in a normal PHP script.
Click to reveal answer
intermediate
Why might you prefer using @php over embedding PHP tags like <?php ?> directly in Blade?
Using @php keeps your Blade templates clean and consistent with Blade syntax, improving readability and avoiding conflicts with Blade's own parsing.
Click to reveal answer
intermediate
Is it recommended to put complex business logic inside @php blocks in Blade templates?
No, complex business logic should be kept in controllers or service classes. Blade templates should focus on displaying data, keeping views simple and maintainable.
Click to reveal answer
What does the @php directive in Blade do?
AIncludes another Blade template
BStarts a Blade comment
CAllows writing raw PHP code inside Blade templates
DOutputs a variable safely
How do you end a raw PHP block started with @php in Blade?
A@endphp
B@endif
C@stop
D@end
Which is a good practice when using @php in Blade?
AUse <code>@php</code> only for small PHP snippets
BAvoid using <code>@php</code> and write raw PHP tags instead
CPut all business logic inside <code>@php</code> blocks
DUse <code>@php</code> to include CSS styles
Can you write multiple lines of PHP code inside a single @php block?
ANo, only one line is allowed
BYes, multiple lines are allowed
COnly if you use semicolons
DOnly if you use Blade comments
Why is @php preferred over raw PHP tags in Blade?
AIt is faster to execute
BIt disables PHP errors
CIt automatically escapes output
DIt improves readability and avoids parsing conflicts
Explain how to use the @php directive in Blade templates and when it is appropriate to use it.
Think about how Blade handles PHP code and best practices for keeping views simple.
You got /4 concepts.
    Describe the benefits of using @php instead of raw PHP tags in Blade templates.
    Consider how Blade processes templates and the importance of clean code.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using @php in a Laravel Blade template?
      easy
      A. To define routes in Laravel
      B. To include CSS styles directly
      C. To create database migrations
      D. To write raw PHP code inside the Blade template

      Solution

      1. Step 1: Understand Blade template usage

        Blade templates allow embedding PHP code for dynamic content.
      2. Step 2: Identify the role of @php

        The @php directive lets you write plain PHP code inside Blade templates.
      3. Final Answer:

        To write raw PHP code inside the Blade template -> Option D
      4. Quick Check:

        @php is for raw PHP code [OK]
      Hint: Remember @php means raw PHP inside Blade [OK]
      Common Mistakes:
      • Confusing @php with CSS or HTML directives
      • Thinking @php defines routes or migrations
      • Using @php to write JavaScript code
      2. Which of the following is the correct syntax to write raw PHP code inside a Blade template using @php?
      easy
      A. @php { echo 'Hello'; }
      B.
      C. @php echo 'Hello'; @endphp
      D. @php echo 'Hello';

      Solution

      1. Step 1: Recall Blade raw PHP syntax

        Blade uses @php to start and @endphp to end raw PHP blocks.
      2. Step 2: Check each option

        @php echo 'Hello'; @endphp correctly uses @php and @endphp to wrap PHP code.
      3. Final Answer:

        @php echo 'Hello'; @endphp -> Option C
      4. Quick Check:

        Raw PHP block must start with @php and end with @endphp [OK]
      Hint: Use @php ... @endphp to wrap PHP code in Blade [OK]
      Common Mistakes:
      • Omitting the closing @endphp
      • Using curly braces instead of @endphp
      • Using raw PHP tags inside Blade without @php
      3. What will be the output of the following Blade snippet?
      @php
        $count = 3;
        for ($i = 1; $i <= $count; $i++) {
          echo "Item $i ";
        }
      @endphp
      medium
      A. Item 1 Item 2 Item 3
      B. Item 123
      C. Item $i Item $i Item $i
      D. Syntax error

      Solution

      1. Step 1: Analyze the PHP loop inside @php block

        The loop runs from 1 to 3, echoing "Item " plus the current number and a space each time.
      2. Step 2: Determine the output string

        It prints "Item 1 ", then "Item 2 ", then "Item 3 ", concatenated as one string.
      3. Final Answer:

        Item 1 Item 2 Item 3 -> Option A
      4. Quick Check:

        Loop prints each item with number and space [OK]
      Hint: Loops inside @php behave like normal PHP loops [OK]
      Common Mistakes:
      • Thinking echo concatenates without spaces
      • Confusing variable interpolation syntax
      • Expecting Blade syntax inside @php block
      4. Identify the error in this Blade template code:
      @php
        $name = 'Alice'
        echo "Hello, $name!";
      @endphp
      medium
      A. Missing semicolon after variable assignment
      B. Incorrect use of double quotes
      C. Missing @endphp directive
      D. Variable name not allowed in Blade

      Solution

      1. Step 1: Check PHP syntax inside @php block

        PHP requires semicolons after statements; the assignment line lacks one.
      2. Step 2: Confirm other syntax correctness

        Double quotes and variable usage are correct; @endphp is present.
      3. Final Answer:

        Missing semicolon after variable assignment -> Option A
      4. Quick Check:

        Every PHP statement needs a semicolon [OK]
      Hint: Check semicolons after each PHP statement [OK]
      Common Mistakes:
      • Forgetting semicolon after variable assignment
      • Assuming Blade handles PHP syntax errors
      • Missing closing @endphp tag
      5. You want to display a list of users with their ages using raw PHP inside a Blade template. Which code correctly uses @php to loop through $users = [['name' => 'Bob', 'age' => 25], ['name' => 'Sue', 'age' => 30]]; and echo each user's name and age?
      hard
      A. @php foreach ($users as $user) { echo 'Name: $user[name], Age: $user[age]
      '; } @endphp
      B. @php foreach ($users as $user) { echo "Name: {$user['name']}, Age: {$user['age']}
      "; } @endphp
      C. @php foreach ($users as $user) { echo "Name: $user->name, Age: $user->age
      "; } @endphp
      D. @php foreach ($users as $user) { echo "Name: $user[name], Age: $user[age]
      "; } @endphp

      Solution

      1. Step 1: Understand the data structure

        $users is an array of associative arrays, so access uses square brackets with quotes.
      2. Step 2: Check string interpolation syntax

        @php foreach ($users as $user) { echo "Name: {$user['name']}, Age: {$user['age']}
        "; } @endphp correctly uses curly braces around array keys inside double quotes for interpolation.
      3. Final Answer:

        @php foreach ($users as $user) { echo "Name: {$user['name']}, Age: {$user['age']}<br>"; } @endphp -> Option B
      4. Quick Check:

        Use {$array['key']} inside double quotes for correct interpolation [OK]
      Hint: Use curly braces for array keys inside double quotes [OK]
      Common Mistakes:
      • Using single quotes with variables inside (no interpolation)
      • Accessing arrays as objects ($user->name) when they are arrays
      • Not using curly braces for array keys inside strings
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard