①自分の記述に問題があるのか
そもそも動作しないんじゃないでしょうか。構文エラーが出るはず。
変数名に{
は使えないはずですし。
https://www.php.net/manual/ja/language.variables.basics.php
「ユーザーが持っている種別(タイプ)」を参照するなら
既に書いた通り
if($user->type == 1)
のようになるはずです。
②phpではif文の中のif文は機能しない仕様なのか。
いいえ。
ネストすることはよくあることで(大抵はネストしないように別の記述やデータなどで調整するけど)、
「条件を満たせば通る」です
PHP
1<?php
2$a = 1;
3$b = 0;
4$c = "a";
5
6echo "a:".$a.PHP_EOL;
7echo "b:".$b.PHP_EOL;
8echo "c:".$c.PHP_EOL;
9if($a === 1){
10 if($b){
11 if($c === "a"){
12 echo 1;
13 }elseif($c === "b"){
14 echo 2;
15 }else{
16 echo 3;
17 }
18 }else{
19 if($c === "a"){
20 echo 4;
21 }elseif($c === "b"){
22 echo 5;
23 }else{
24 echo 6;
25 }
26 }
27}else{
28 if($b){
29 if($c === "a"){
30 echo 7;
31 }elseif($c === "b"){
32 echo 8;
33 }else{
34 echo 9;
35 }
36 }else{
37 if($c === "a"){
38 echo 10;
39 }elseif($c === "b"){
40 echo 11;
41 }else{
42 echo 12;
43 }
44 }
45}