我有一个脚本,我想用它来处理来自客户端的用户输入。我有几个检查,但第一个检查要求提交的字符串是数字。
这是代码
<?php
$num = '09201x11222';
//Check whether the string is numeric
function test($str){
return ctype_digit($str);
}
echo test($num);
echo '<br/><br/><br/>';
//Check if the length is exactly 10 characters
$len = strlen($num);
if($len < 10 || $len > 10){
echo 'that number is wrong';
}
elseif($len == 10){
echo 'that number is of required length';
}
echo '<br/><br/><br/>';
//Trim Leading Zero
$afterTrim = substr($num,1);
echo $afterTrim;
//Append countrycode 380
echo '<br/><br/><br/>';
$countryCode = '380';
$afterAppend = $countryCode.$afterTrim;
echo $afterAppend;
?>
当$num
正确时,我在屏幕上得到1但是当它出错时我什么也得不到。那是为什么?
答案 0 :(得分:0)
回应 <% @quote = local_assigns[:quote] %>
<%= link_to quote_path(@quote) do %>
<section id="quotes">
<!-- <div class="container"> -->
<div class="col-md-4 col-md-4 col-md-4 text-center">
<div class="panel panel-success panel-quote link-panel">
<div class="panel-heading">
<strong>GLA</strong>
</div>
<div class="panel-body">
<p><strong>Quote ID; <%= @quote.id %></strong></p>
</div>
<table class="table table-bordered">
<tr>
<td>Company name</td>
<td><%= @quote.co_name %></td>
</tr>
<tr>
<td>Company number</td>
<td><%= @quote.co_number %></td>
</tr>
<tr>
<td>Office postcode</td>
<td><%= @quote.postcode %></td>
</tr>
<tr>
<td>Industry</td>
<td><%= @quote.industry %></td>
</tr>
<tr>
<td>Previous cover</td>
<td><%= @quote.prev_cover %></td>
</tr>
<tr>
<td>Lives overseas</td>
<td><%= @quote.lives_overseas %></td>
</tr>
<tr>
<td>Scheme start date</td>
<td><%= @quote.scheme_start_date %></td>
</tr>
<tr>
<td>Payment frequency</td>
<td><%= @quote.payment_frequency %></td>
</tr>
<tr>
<td>Commission level</td>
<td><%= @quote.commission_level %></td>
</tr>
</table>
</div>
</div>
<!-- </div> -->
</section>
</div>
<% end %>
将导致“无效”打印。这是因为false
需要将一个布尔值转换为字符串表示。
从方法签名
可以看出echo
这将返回一个由echo转换的布尔值:如果bool ctype_digit ( string $text )
,它将打印true
,否则它将不打印任何内容。
来自manual
布尔值TRUE值转换为字符串“1”。 Boolean FALSE转换为“”(空字符串)。这允许在布尔值和字符串值之间来回转换。