javascript - PHP数字增量未定义
问题描述
我有下面的代码,它在countingNumbers 变量上返回未定义。我需要实现类名编号,以便我可以在 JavaScript 中循环并给它们单独的“阅读更多”标签。
<?php $countingNumbers = 0 ?>
<?php
function custom_echo($x, $length){
if(strlen($x)<=$length)
{
echo $x;
}
else
{
$y=substr($x,0,$length) . '...';
echo $y;
echo '<div class="service-about__link' . $countingNumbers . '">
READ MORE
</div>';
}
}
?>
@foreach($services as $service)
<?php $countingNumbers++ ?>
<div class="service-about movement{{$countingNumbers}} row row-margin">
<div class="col-lg-6">
<h3 class="service-about__title">
{!!$service->title!!}
</h3>
<div class="service-about__content-small">
<?php
custom_echo($service->content, 200); ?>
</div>
<div class="service-about__content-large">
{!!$service->content!!}
</div>
</div>
<div class="col-md-6">
<div class="service-about__image">
<img src="{{url('')}}/img/services/{{$service->image}}">
</div>
</div>
@endforeach
解决方案
- 正如@N69S 指出的那样,
$countingNumbers
不在custom_echo()
's 范围内。为此,您可以通过以下方式传递它use()
:
<?php $countingNumbers = 0 ?>
<?php
function custom_echo($x, $length) use($countingNumbers) {
if(strlen($x)<=$length)
{
echo $x;
}
else
{
$y=substr($x,0,$length) . '...';
echo $y;
echo '<div class="service-about__link' . $countingNumbers . '">
READ MORE
</div>';
}
}
?>
@foreach($services as $service)
<?php $countingNumbers++ ?>
<div class="service-about movement{{$countingNumbers}} row row-margin">
<div class="col-lg-6">
<h3 class="service-about__title">
{!!$service->title!!}
</h3>
<div class="service-about__content-small">
<?php
custom_echo($service->content, 200); ?>
</div>
<div class="service-about__content-large">
{!!$service->content!!}
</div>
</div>
<div class="col-md-6">
<div class="service-about__image">
<img src="{{url('')}}/img/services/{{$service->image}}">
</div>
</div>
@endforeach
- 如果您的数组具有数字增量索引,您可以这样做(如果没有,您可以使用循环变量,正如@brombeer 指出的那样):
<?php
function custom_echo($index, $x, $length){
if(strlen($x)<=$length)
{
echo $x;
}
else
{
$y=substr($x,0,$length) . '...';
echo $y;
echo '<div class="service-about__link' . $index . '">
READ MORE
</div>';
}
}
?>
@foreach($services as $index => $service)
<div class="service-about movement{{$index}} row row-margin">
<div class="col-lg-6">
<h3 class="service-about__title">
{!!$service->title!!}
</h3>
<div class="service-about__content-small">
<?php
custom_echo($index, $service->content, 200); ?>
</div>
<div class="service-about__content-large">
{!!$service->content!!}
</div>
</div>
<div class="col-md-6">
<div class="service-about__image">
<img src="{{url('')}}/img/services/{{$service->image}}">
</div>
</div>
@endforeach
- 正如@AlbertoSinigaglia 指出的那样,您还可以摆脱剩余的 PHP 代码块。
你的看法:
@foreach($services as $index => $service)
<div class="service-about movement{{$index}} row row-margin">
<div class="col-lg-6">
<h3 class="service-about__title">
{!!$service->title!!}
</h3>
<div class="service-about__content-small">
@include('custom_echo', [
'index' => $index,
'x' => $service->content,
'length' => 200
])
</div>
<div class="service-about__content-large">
{!!$service->content!!}
</div>
</div>
<div class="col-md-6">
<div class="service-about__image">
<img src="{{url('')}}/img/services/{{$service->image}}">
</div>
</div>
@endforeach
custom_echo.blade.php
@if (strlen($x)<=$length)
{{ $x }}
@else
{{ substr($x,0,$length) }}…
<div class="service-about__link{{ $index }}">
READ MORE
</div>
@endif
推荐阅读
- angular - 与 Angular 中的不同组件共享服务的特定价值
- angular - 是否有角度组件或代码来创建 Material.io 抽屉?
- python - DynamoDB 不返回扫描值
- python - 如何使用 pyspark 连接到在 gcp 上运行的受 kerberos 保护的 kafka 集群?
- postgresql - Power BI 服务 - 无法刷新不支持加密连接的 postgresql 源
- python - 如何限制Python中嵌套循环函数中循环的迭代次数?
- javascript - 使用“indexOf”搜索字符串失败
- django - Django celery 和 Django cron-jobs 的用法有什么区别?
- node.js - 如何检查是否在 discord.js 中发布了反应
- cmake - 在 POST_BUILD 步骤调用宏或函数