我从未确定过的是在PHP中要进行多少次变量检查.例如,采取以下代码.我在分配它们之前没有检查任何变量,或者将它们传递给函数以查看它们是否包含我期望的变量
$carId = '12';
$aCar = fetchCar($carId);
$make = $aCar['make'];
$model = $aCar['model'];
$yearMade = $aCar['year'];
$age = calcAge($yearMade);
Run Code Online (Sandbox Code Playgroud)
现在,如果我添加一些检查
$carId = '12';
if(is_numeric($carId))
{
$aCar = fetchCar($carId);
if(isset($aCar['make']) && is_string($aCar['make']))
{
$make = $aCar['make'];
}
else
{
//Report error
}
if(isset($aCar['model']) && is_string($aCar['model']))
{
$model = $aCar['model'];
}
else
{
//Report error
}
if(isset($aCar['year']) && is_numeric($aCar['year']))
{
$yearMade = $aCar['year'];
$age = calcAge($yearMade);
}
else
{
//Report error
}
}
else
{
//Report errors
}
Run Code Online (Sandbox Code Playgroud)
代码现在更好但是有点太过分和臃肿?我应该做这么多检查吗?
如果我不应该做这么多检查,你在哪里划清你应该和不应该检查的界限?
我有一个奇怪的问题和一些我以前从未遇到过的问题。我有一个像下面这样的 mysql 查询
SELECT COUNT( * ) AS total_count FROM postcodes WHERE prefix='M1';
Run Code Online (Sandbox Code Playgroud)
我的查询匹配一行,因此我预计 Total_count 的值为 1。然而,它返回 -1。有谁知道为什么 if 会返回负值?
我有以下数据库表
他们之间有一对多的关系,所以Towns可以有很多,Streets并且Streets可以有多个关系Houses.
我有ID的ID,Town我只想从中得到所有Houses城镇的清单.所以此刻我正在做.
//This gives me streets and houses in nested arrays
$towns = Town::with(['streets', 'streets.houses' => function($query) {
$query->where('active', 1)
}])->find($town_id);
//But I only want a list of houses so I do
$houses = $towns->streets->map(function($street) {
return $street->houses;
});
Run Code Online (Sandbox Code Playgroud)
这有效,但有更好的方法吗?我觉得好像我应该能够使用雄辩的方式获得房屋清单.之后不得不做一些映射似乎不对.
在Angular.js中,我将一个数字传递给我的视图,这是一段时间内的时间长度.
<p>{{time.minutes}}</p>
Run Code Online (Sandbox Code Playgroud)
我想格式化这个值,以便以小时和分钟显示,例如(6小时42分钟).我尝试使用一些内置的日期函数但无法到达任何地方.在将控制器传递给视图之前在控制器中执行此类逻辑是否更好?或者在视图中是否可以?
我想创建一个网页,用户可以使用手写笔编写签名(例如签署包裹或包裹时).有谁知道这是否可能?我不确定从哪里开始,但我猜我将不得不使用元素和JavaScript?
我的 CodeIgniter 验证码没有生成,所以我无法在我的视图中显示它
控制器
public function login() {
$this->load->helper('captcha');
$this->form_validation->set_rules($this->login_rules);
$userCaptcha = set_value('captcha');
$word = $this->session->userdata('captchaWord');
if($this->form_validation->run() == TRUE && strcmp(strtoupper($userCaptcha),strtoupper($word)) == 0) {
$this->session->unset_userdata('captchaWord');
$username = $this->input->post('username');
$password = $this->input->post('password');
if(!$this->autentifikasi->login($username,$password)) {
$this->session->set_flashdata('pesan', '<div class="error">Login gagal</div>');
redirect(site_url('user/login'));
} else {
$this->session->set_flashdata('pesan', '<div class="sukses">Anda telah berhasil login, selamat berbelanja.</div>');
redirect(site_url('user/login'));
}
}
$original_string = array_merge(range(0,9), range('a','z'), range('A', 'Z'));
$original_string = implode("", $original_string);
$captcha = substr(str_shuffle($original_string), 0, 6);
$vals = array(
'word' => $captcha,
'img_path' => './captcha/',
'img_url' => base_url().'user/login/',
'font_path' …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建Windows通用应用程序(UWP).我已经下载了Visual Studio的社区版,并启动了一个空白的应用程序.
我想要做的一件事是使用流程类来获取有关正在运行的特定进程的信息.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace MyApp
{
class MyClass
{
public MyClass()
{
var MyProcess = System.Diagnostics.Process.GetProcesses().FirstOrDefault(f => f.ProcessName == "MyProcess");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.项目将无法构建,因为它无法找到进程类.有谁知道我做错了什么?我是否需要包含对该类的引用?