这是我的代码:
function phpwtf(string $s) {
echo "$s\n";
}
phpwtf("Type hinting is da bomb");
Run Code Online (Sandbox Code Playgroud)
导致此错误:
可捕获的致命错误:传递给phpwtf()的参数1必须是字符串的实例,给出字符串
看到PHP在同一口气中识别并拒绝所需的类型,这不仅仅是一点Orwellian.该死的有五盏灯.
PHP中字符串的类型提示相当于什么?奖励考虑答案,准确解释这里发生了什么.
场景:各种文件的大小以字节形式存储在数据库中.将此大小信息格式化为千字节,兆字节和千兆字节的最佳方法是什么?例如,我有一个Ubuntu显示为"5.2 MB(5445632字节)"的MP3.我如何在网页上显示为"5.2 MB"并且文件小于1兆字节显示为KB并且文件1千兆字节及以上显示为GB?
如何强制Web浏览器通过JavaScript对页面进行硬刷新?
硬刷新意味着获取页面的新副本并刷新所有外部资源(图像,JavaScript,CSS等).
使用该in_array
函数时是否可以进行不区分大小写的比较?
所以使用这样的源数组:
$a= array(
'one',
'two',
'three',
'four'
);
Run Code Online (Sandbox Code Playgroud)
以下查找都将返回true:
in_array('one', $a);
in_array('two', $a);
in_array('ONE', $a);
in_array('fOUr', $a);
Run Code Online (Sandbox Code Playgroud)
哪些功能或一组功能可以做同样的事情?我认为in_array
自己无法做到这一点.
可能重复:
使用jQuery选择复选框组的值
在HTML中,我有一组按类组合在一起的复选框.我想在jQuery中获取一个数组,其中包含为该类选择/检查的所有复选框(因此忽略页面上的其他复选框).
所以像这样的HTML代码:
<input type="checkbox" class="group1" value="18" checked="checked" />
<input type="checkbox" class="group1" value="20" />
<input type="checkbox" class="group1" value="15" />
<input type="checkbox" class="group2" value="14" />
<input type="checkbox" class="group1" value="55" checked="checked" />
<input type="checkbox" class="group1" value="10" checked="checked" />
<input type="checkbox" class="group2" value="77" checked="checked" />
<input type="checkbox" class="group1" value="11" />
Run Code Online (Sandbox Code Playgroud)
将选中/选中的group1
复选框的值返回到如下数组中:
var values = [ 18, 55, 10 ];
Run Code Online (Sandbox Code Playgroud) 使用以下MySQL表:
+-----------------------------+
+ id INT UNSIGNED +
+ name VARCHAR(100) +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
如何排序时,如何选择单个行及其在表中其他行中的位置name ASC
.因此,如果表数据如下所示,则按名称排序时:
+-----------------------------+
+ id | name +
+-----------------------------+
+ 5 | Alpha +
+ 7 | Beta +
+ 3 | Delta +
+ ..... +
+ 1 | Zed +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
如何选择Beta
获取该行当前位置的行?我正在寻找的结果集是这样的:
+-----------------------------+
+ id | position | name +
+-----------------------------+
+ 7 | 2 | Beta +
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
我可以做一个简单的SELECT * FROM tbl ORDER BY name ASC
然后枚举PHP中的行,但是为一行加载一个可能很大的结果集似乎很浪费.
安全合法地存储信用卡信息非常困难,不应该尝试.我无意存储信用卡数据,但我很想弄清楚以下内容:
我的信用卡信息存储在世界上某个地方的服务器上.该数据(希望)不会存储在商家的服务器上,但在某些时候需要存储该数据以验证和收取由商家提交的数据识别的帐户.
我的问题是:如果您的任务是存储信用卡数据,您将使用哪种加密策略来保护磁盘上的数据?据我所知,提交的信用卡信息正在或多或少地实时检查.我怀疑用于保护数据的任何加密密钥都是手动输入的,因此解密正在进行中,这意味着密钥本身存储在磁盘上.您如何在这样的自动化系统中保护您的数据和密钥?
使用PHP 5.3当应用于empty()
通过__get()
重载函数获取的动态对象属性时,我遇到了奇怪/非直观的行为.请考虑以下代码段:
<?php
class Test {
protected $_data= array(
'id'=> 23,
'name'=> 'my string'
);
function __get($k) {
return $this->_data[$k];
}
}
$test= new Test();
var_dump("Accessing directly:");
var_dump($test->name);
var_dump($test->id);
var_dump(empty($test->name));
var_dump(empty($test->id));
var_dump("Accessing after variable assignment:");
$name= $test->name;
$id= $test->id;
var_dump($name);
var_dump($id);
var_dump(empty($name));
var_dump(empty($id));
?>
Run Code Online (Sandbox Code Playgroud)
该功能的输出如下.比较empty()
第一个和第二个结果集上的检查结果:
设置#1,意外结果:
string(19) "Accessing directly:"
string(9) "my string"
int(23)
bool(true)
bool(true)
Run Code Online (Sandbox Code Playgroud)
期望Set#1返回与Set#2相同:
string(36) "Accessing after variable assignment:"
string(9) "my string"
int(23)
bool(false)
bool(false)
Run Code Online (Sandbox Code Playgroud)
这真是令人费解和不直观.对象属性输出非空字符串,但empty()
将它们视为空字符串.这里发生了什么?
像许多Web开发人员一样,我期待使用新的HTML 5 <video>
标记的流式视频.浏览器支持肯定还不够广泛,因此使用Flash/SWF后备是必须的.
这让我想到:在Flash中,可以高度自定义HTML 5中的播放控件(暂停,播放,停止,搜索,音量等).有哪些选项可用于自定义视频控件的字形,图标和颜色?需要Javascript吗?例如,以下页面根据浏览器呈现不同的控件 - 使用FF3.5,Chrome和Safari进行测试:
http://henriksjokvist.net/examples/html5-video/
在浏览器中自定义和标准化控件甚至匹配旧浏览器使用的Flash控件真的很棒.
在HTML表单上,我有INPUT文本框,后跟一个链接,然后是另一个INPUT文本框.我想从tabindex/tab顺序中删除链接:
<p>
<input type="text" name="field1" id="field1" value="" />
<a href="..a url.." id="link1">more info</a>
</p>
<p>
<input type="text" name="field2" id="field2" value="" />
</p>
Run Code Online (Sandbox Code Playgroud)
tab顺序是field1,link1,field2,我希望它在tabindex/order中完全没有link1的field1,field2.除了通过tabindex
属性重新排序之外,还有什么方法可以完全删除tab1中的link1吗?
php ×4
html ×3
javascript ×3
jquery ×2
arrays ×1
credit-card ×1
encryption ×1
html5 ×1
mysql ×1
oop ×1
page-refresh ×1
reload ×1
security ×1
sql ×1
tabindex ×1
type-hinting ×1
types ×1
video ×1