这是一种常见的模式:如果变量不存在,我会收到undefined local variable or method
错误.
现有代码有,if variable_name.present?
但这并没有考虑到不存在的变量.
如何检查变量的值并考虑它根本不存在?
我试过了:
if (defined? mmm) then
if mmm.present? then
puts "true"
end
end
Run Code Online (Sandbox Code Playgroud)
但Ruby仍然检查内部mmm.present?
并且当它不存在时抛出"没有这样的变量".
我相信这有一个共同的模式/解决方案.
我有一个DOM元素的引用,以及一个jQuery对象,它是一个选择器的结果,我想检查该特定的DOM元素是否在该jQuery对象中.如果没有循环遍历整个jQuery对象并检查是否相等,那么jQuery中有一种直接的方法可以做到这一点吗?
我已经试过.contains
,:contains
,.has
和:has
,和他们都不做的工作.另外,我应该提到我正在使用的所有元素都在相同的DOM树级别上,所以不必担心父母/孩子.
有没有办法检查是否存在推特用户名?没有通过OAuth或twitter基本身份验证进行身份验证?
我已经找到了很多引用Java和C的例子,但是我如何或者我可以检查是否存在使用XSL的外部文件.
首先,我意识到这只是一个片段,但它是一个巨大的样式表的一部分,所以我希望它足以显示我的问题.
<!-- Use this template for Received SMSs -->
<xsl:template name="ReceivedSMS">
<!-- Set/Declare "SMSname" variable (local, evaluates per instance) -->
<xsl:variable name="SMSname">
<xsl:value-of select=" following-sibling::Name"/>
</xsl:variable>
<fo:table font-family="Arial Unicode MS" font-size="8pt" text-align="start">
<fo:table-column column-width=".75in"/>
<fo:table-column column-width="6.75in"/>
<fo:table-body>
<fo:table-row>
<!-- Cell contains "speakers" icon -->
<fo:table-cell display-align="after">
<fo:block text-align="start">
<fo:external-graphic src="../images/{$SMSname}.jpg" content-height="0.6in"/>
Run Code Online (Sandbox Code Playgroud)
我想做的是,在一条"如果"的声明中,这{$SMSname}.jpg
条线路就是这样.那是:
<fo:block text-align="start">
<xsl:if test="exists( the external file {$SMSname}.jpg)">
<fo:external-graphic src="../images/{$SMSname}.jpg" content-height="0.6in"/>
</xsl:if>
<xsl:if test="not(exists( the external file {$SMSname}.jpg))">
<fo:external-graphic src="../images/unknown.jpg" content-height="0.6in"/>
</xsl:if>
</fo:block>
Run Code Online (Sandbox Code Playgroud)
由于"分组"等,我正在使用XSLT 2.0.我希望这是可以做到的.我希望它更简单. …
我知道你可以检查一个元素是否存在$('div').length
,但是当一个元素被销毁时.remove()
,.length
仍然会报告div存在.我怎样才能发现它是否真的存在?
if ($('div').length) {
alert('yes')
} else {
alert('no')
}
Run Code Online (Sandbox Code Playgroud) 在PostgreSQL中有一种更快的方法来基本上在几行中执行if吗?
说我有一张桌子
ticket | row | archived
1 | 1 | true
1 | 2 | true
1 | 3 | true
2 | 1 | false
2 | 2 | true
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以在ticket =的列下面做一个if语句?因此,ticket = 1的地方是真的
true && true && true = true
Run Code Online (Sandbox Code Playgroud)
并且ticket = 2将是假的,因为
false && true = false
Run Code Online (Sandbox Code Playgroud)
或者我应该坚持下去
SELECT ( (SELECT COUNT(*) FROM table WHERE ticket = 1)
= (SELECT COUNT(*) FROM table WHERE ticket = 1 AND archived = true) )
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,在所选文件夹中侦听*.log文件.我用过FileSystemWatcher
.
但有一个问题.负责制作该文件的另一个应用程序采取以下步骤:
我无法改变这种行为.
所以我FileSystemWatcher
为*.gz和*.txt文件做了2 秒.为什么?因为此应用程序有时不解压缩gz文件,有时不会将txt文件重命名为最终的*.log文件.
FileSystemWatcher2
捕获txt文件,然后(在大多数情况下,它被重命名为在接下来的1000毫秒登录)我需要等待一段时间来检查是否存在txt文件(如果没有,它似乎被重命名为最终的*.log文件).
问题是,如何检查文件是否存在而不Thread.Sleep()
阻止UI冻结?
我希望很清楚,如果不是,我会尝试更好地描述它.我认为这是一个复杂的问题.
一些代码示例:
Watz for gz文件:
private void fileSystemWatcher_Created(object sender, FileSystemEventArgs e)
{
//this is for gz files in case if gz file is not unpacked automatically by other app
//I need to wait and check if gz was unpacked, if not, unpack it by myself,
//then txt watcher will catch that
Thread.Sleep(5000);
if (File.Exists(e.FullPath))
{
try
{
byte[] dataBuffer = new byte[4096];
using …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在MS SQL 2012 Express上运行以下查询:
Select (
Select Id, Salt, Password, BannedEndDate
from Users
where username = '" + LoginModel.Username + "'
), (
Select Count(*)
From LoginFails
where username = '" + LoginModel.Username + "'
And IP = '" + Request.ServerVariables["REMOTE_ADDR"] + "')"
);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
在
select
未引入子查询时,只能在列表中指定一个表达式EXISTS
.
我怎么解决这个问题?
我知道答案中至少有10个相同的问题,但它们似乎都没有完美地为我工作.我正在尝试检查内部或外部图像是否存在(图像URL是否有效?).
fopen($url, 'r')
失败,除非我使用@fopen()
:
Warning: fopen(http://example.com/img.jpg) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in file.php on line 21
Run Code Online (Sandbox Code Playgroud)getimagesize($img)
当图像不存在时失败(PHP 5.3.8):
Warning: getimagesize() [function.getimagesize]: php_network_getaddresses: getaddrinfo failed
Run Code Online (Sandbox Code Playgroud)fileExists()
失败,因为它不能与外部URL一起使用,也无法检查我们是否正在处理图像.对这种问题最常见的答案有四种方法是错误的.这样做的正确方法是什么?
我有一个PHP库 https://github.com/tedivm/Fetch,它使用Fetch命名空间,我想在我的脚本中检查它的存在.
我的脚本代码:
// Load Fetch
spl_autoload_register(function ($class) {
$file = __DIR__ . '/vendor/' . strtr($class, '\\', '/') . '.php';
if (file_exists($file)) {
require $file;
return true;
}
});
if (!class_exists('\\Fetch')) {
exit('Failed to load the library: Fetch');
}
$mail = new \Fetch\Server($server, $port);
Run Code Online (Sandbox Code Playgroud)
但始终显示此消息.但图书馆正在全力以赴.
在此先感谢您的帮助!