谁能推荐可用于评估逻辑表达式的软件(最好是 Mac 版)或基于 Web 的工具?
例如,我希望能够快速测试两个表达式是否如下:
$a = 'foo';
$b = 'bar';
$c = 'foo';
( !(($a == $c) && ($b == $c)) )
// and
( ($a != $c) || ($b != c$) )
Run Code Online (Sandbox Code Playgroud)
是否可互换。
而且,对于如何构建此类表达式,是否存在普遍认可的最佳实践?例如,尝试尽量减少否定、元素顺序或类似内容的使用?
有时我发现自己在这些事情上有点挣扎:)
如何正确序列化和反序列化包含转义字符的字符串?
鉴于:
$data = "\'test\'";
$out= serialize($data);
print_r($out); // -> s:8:"\'test\'";
Run Code Online (Sandbox Code Playgroud)
这里的问题是,unserialize不接受字符串长度:
$out = 's:8:"\'test\'"';
var_dump(unserialize($out)); // -> bool(false)
Run Code Online (Sandbox Code Playgroud)
但是如果我将字符串长度更改为6(忽略转义字符):
$out = 's:6:"\'test\'"';
var_dump(unserialize($out)); // -> string(6) "'test'"
Run Code Online (Sandbox Code Playgroud)
它正确地反序列化.
什么是处理这个问题的好方法?
是否有充分的理由首先在构造函数之外声明类所使用的变量?
class foo {
var bar; // why is this a good practice? (or could it be skipped?)
public function __construct() {
$this->foo = 'foobar';
}
}
Run Code Online (Sandbox Code Playgroud)
我经常看到它,但我不确定它是做什么的,因为似乎可以将它们排除在外.
给出一个字符串,如下列之一:
'2'
'2px'
'2%'
'2em'
'2foobar'
'foobar'
Run Code Online (Sandbox Code Playgroud)
我想确定一下:
1)它是否是一个普通数字(2或2.2),如果它是圆形的(Math.floor())并且附加'px',那么,'2'或'2.2'变为'2px'
2)如果它不是普通数字,则确定它是否是有效的css值,即,如果它由一个数字(int或float)后跟'px','em'或'%'组成.我知道还有其他人,但我会支持这三个人.如果是,请离开它.
3)如果没有,看看字符串是否以数字开头(int ot float),将其四舍五入并追加'px'
4)如果没有,将其设置为空字符串
结果将是:
'2' -> '2px'
'2.2' -> '2px'
'2%' -> '2%'
'2em' -> '2em'
'2foo' -> '2px'
'foo' -> ''
Run Code Online (Sandbox Code Playgroud)
是否可以以紧凑的方式(可能使用正则表达式),或使用现有的css验证器库进行JS?
给出一个dom元素:
<li id="foo+bar"></li>
Run Code Online (Sandbox Code Playgroud)
我想解决该元素(如果可能,使用jQuery),我尝试:
$("#foo+bar")
Run Code Online (Sandbox Code Playgroud)
我也试过逃避它:
$("#foo\+bar")
Run Code Online (Sandbox Code Playgroud)
..但似乎都没有用,因为(我猜)jQuery似乎无法处理加号.不幸的是我真的没有更改id值的选项,所以:
有没有办法让jQuery获得正确的dom,或者我怎么能解决这个问题?
我需要将第二个变量的值分配给第三个变量,如果第一个变量是(bool)false或未定义,则需要使用第二个变量的值.
我通常使用三元表示法这样做:
$foobar = ($some_prefix_and_some_variable_name) ? $some_prefix_and_some_variable_name : $bar ;
Run Code Online (Sandbox Code Playgroud)
但是,如果$ foo变量名称很长,有时这不是很漂亮,因为它需要在这种表示法中重复.
我现在的问题是,使用这种表示法是否同样好:
$foobar = $some_prefix_and_some_variable_name OR $foobar = $bar;
Run Code Online (Sandbox Code Playgroud)
这个符号可以与三元版本互换吗?
php boolean-logic ternary-operator variable-assignment assignment-operator
在PHP中,我正在考虑做这样的事情:
function foo(){
echo 'bar';
}
$fn = 'foo';
$fn();
Run Code Online (Sandbox Code Playgroud)
它有效,但它被认为是不好的做法?
我有一个多维数组元素,每个元素都有一个相应的函数.我想存储该函数名称,并在遍历数组时为每个元素调用相应的函数.
就像是:
function render_el1(){ echo 'et';}
function render_el2(){ echo 'to';}
$elements = array(
'el_1' => array(
'name' => 'Element One'
, 'func' => 'render_el1'
)
, 'el_2' => array(
'name' => 'Element Two'
, 'func' => 'render_el2'
)
);
foreach($elements as $element => $options){
$fn = $options['func'];
echo '<h1>'.$options['name'].'</h1>';
if (function_exists($fn)) {
$fn();
}
}
Run Code Online (Sandbox Code Playgroud)
对这种方法的任何评论都非常受欢迎,我也想知道在编程术语中调用这种方法的方法.
php ×4
javascript ×2
class ×1
css ×1
escaping ×1
evaluation ×1
expression ×1
jquery ×1
logic ×1
oop ×1
regex ×1
truthtable ×1
validation ×1