我读过很多SQL代码,似乎开发人员假定默认排序顺序始终存在.例如,在构建HTML选择列表时,他们只会SELECT id, name FROM table
发布一个ORDER BY
子句.
根据我自己的经验,似乎dbms ORDER BY
总是使用FIFO命令数据,如果没有给出子句而没有索引.但是,订单无法保证.但是,如果表没有变化,我从未见过dbms重新排序数据.
如果表没有变化,您是否曾经历过以非确定性顺序选择数据的dbms?
始终放置ORDER BY子句是最佳做法吗?
我正在尝试追踪我的composer.lock文件中导致差异的php设置.
一些机器生产:
"time": "2017-01-06T14:33:56+00:00"
Run Code Online (Sandbox Code Playgroud)
在另一台机器上:
"time": "2017-01-06 14:33:56"
Run Code Online (Sandbox Code Playgroud)
我在git中提交了composer.lock文件,这些不同的时间格式导致了不必要的差异.
我已经看到很多php代码执行以下操作来检查字符串是否有效:
$ str是一个字符串变量.
if (!isset($str) || $str !== '') {
// do something
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢这样做
if (strlen($str) > 0) {
// something
}
Run Code Online (Sandbox Code Playgroud)
第二种方法有什么问题可以出错吗?我应该注意哪些铸造问题?
我正在攻读Zend PHP认证.
不确定这个问题的答案.
问题:使用PHP 5迭代和修改数组的每个元素的最佳方法是什么?
a)您无法在迭代期间修改数组
b)
for($i = 0; $i < count($array); $i++) { /* ... */ }
C)
foreach($array as $key => &$val) { /* ... */ }
d)
foreach($array as $key => $val) { /* ... */ }
E)
while(list($key, $val) = each($array)) { /* ... */ }
我的本能是(B),因为不需要创建临时变量,然后我意识到它不适用于关联数组.进一步搜索网络发现:将不变数组计数存储在单独的变量中可以提高性能.
$cnt = count($array);
for ($i = 0; $i < $cnt; $i++) { }
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个PHP函数,可以修剪一个长字符串中的每一行.
例如:
<?php
$txt = <<< HD
This is text.
This is text.
This is text.
HD;
echo trimHereDoc($txt);
Run Code Online (Sandbox Code Playgroud)
输出:
This is text.
This is text.
This is text.
Run Code Online (Sandbox Code Playgroud)
是的,我知道trim()函数.只是不确定如何在像heredoc这样的长字符串上使用它.
这段时间我用PHP做了很多.寻找大海捞针.
$names = [
'Mike',
'John',
'Dave',
'Tony'
];
$gotDave = in_array('Dave', $names);
Run Code Online (Sandbox Code Playgroud)
in_array的运行时是O(n),其中n是元素的数量.
我经常将查找数据结构设置为这样.
$names = [
'Mike' => true,
'John' => true,
'Dave' => true,
'Tony' => true
];
$gotDave = isset($names['Dave']);
Run Code Online (Sandbox Code Playgroud)
运行时是O(1),因为在php中,关联数组是一个hashmap.
一些问题:
我不想在Zurb Foundation css框架中交替行的默认条带样式.
删除它的最简单方法是什么?