Muh*_*haq 4 php string laravel
我试图将一个字符串分解成一个数组,然后在屏幕上打印这些值。这是我试图打破的字符串:
“齿轮|秃鹰”
“|” 使用它来拆分它。这是我的做法:
<?= $arrays = explode('|', $b->brand); foreach($arrays as $array){echo $array;} ?>
Run Code Online (Sandbox Code Playgroud)
但我不断收到此异常:
2/2) ErrorException
Array to string conversion (View: D:\Code\PHP\Code\CrownBillingSystem\resources\views\pages\print.blade.php)
in 6e7ee4930110d4a26a3e31e0ddfe8b87849a1319.php (line 93)
at CompilerEngine->handleViewException(object(ErrorException), 1)
in PhpEngine.php (line 44)
at PhpEngine-
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这里出了什么问题。
虽然其他答案没有错,但 Blade 旨在消除 PHP 标签的使用。Blade 功能让您无所不能。
这里所产生的误差存在是<?=对速记<php echo。因此,您的代码将以echo $arrays伪代码术语呈现,这是 PHP 中断的地方,因为您无法回显数组。
为了在这种情况下改进您的代码,您应该在控制器中操作尽可能多的数据,刀片文档中也提到了这一点。
我是否建议修改您的代码以产生相同的结果,但使用刀片。
@php
$arrays = explode('|', $b->brand);
@endphp
@foreach($arrays as $array)
{{ $array }}
@endforeach
Run Code Online (Sandbox Code Playgroud)
上面的代码片段将产生与预期相同的结果。
一个更好的方法是从控制器返回视图,并传递$arrays预定义的视图。像这样的东西:
public function echoArrays()
{
$b = Object::find(1); //or however you get $b
$arrays = explode('|', $b->brand);
return view('view1', compact('arrays');
}
Run Code Online (Sandbox Code Playgroud)
以上将允许您使用代码片段 2,但没有@php ...@endphp标签,只需使用@foreach() ... @endforeach