我知道include,isset,require,print,echo,和其他一些人都没有的功能,但语言结构.
其中一些语言结构需要括号,而其他语言结构则不需要.
require 'file.php';
isset($x);
Run Code Online (Sandbox Code Playgroud)
有些有返回值,有些则没有.
print 'foo'; //1
echo 'foo'; //no return value
Run Code Online (Sandbox Code Playgroud)
那么语言结构和内置函数之间的内部差异是什么?
我正在尝试使用ALTER IGNORE TABLE + UNIQUE KEY从MySQL表中删除重复项.MySQL文档说:
IGNORE是标准SQL的MySQL扩展.如果新表中的唯一键上存在重复项,或者启用了严格模式时出现警告,它将控制ALTER TABLE的工作方式.如果未指定IGNORE,则复制将中止并在发生重复键错误时回滚.如果指定了IGNORE,则只使用第一行在唯一键上具有重复项的行.其他冲突的行将被删除.不正确的值将截断为最接近的匹配可接受值.
当我运行查询时......
ALTER IGNORE TABLE table ADD UNIQUE INDEX dupidx (field)
Run Code Online (Sandbox Code Playgroud)
...我仍然收到错误#1062 - 关键'dupidx'重复输入'blabla'.
我有2个实体:Country(id,name)和Mapping(id,object,internalId,externalId).国家和地图未与关联相关联(因为"映射"不仅包含国家/地区的行).我需要使用以下条件获取国家/地区的外部ID:
country.id = mapping.internalIdmapping.object = 'country'所以我计划在Country中添加函数getExternalId()
function getExternalId() {
$em = Registry::getEntityManager();
$mapping = $em->getRepository('Mapping')->findOneBy(array(
'object' => 'country',
'internalId' => $this->getId()
));
return !empty($mapping) ? $mapping->getExternalId() : false;
}
Run Code Online (Sandbox Code Playgroud)
问题:
提前致谢!
在PHP 5.3之前,我曾经将接口/抽象类命名为:
abstract class Framework_Package_Subpackage_Abstract {}
Framework/Package/Subpackage/Abstract.php
interface Framework_Package_Subpackage_Interface {}
Framework/Package/Subpackage/Interface.php
Run Code Online (Sandbox Code Playgroud)
现在使用PHP 5.3并使用命名空间我不能再使用我的约定了,因为interface它abstract是保留的关键字.
namespace Framework\Package\Subpackage;
abstract class Abstract {}
Framework/Package/Subpackage/Abstract.php
namespace Framework\Package\Subpackage;
interface Interface {}
Framework/Package/Subpackage/Interface.php
Run Code Online (Sandbox Code Playgroud)
那么,我应该如何命名我的类/接口呢?
就像我们现在一样,在PHP中处理多字节字符串并不容易.例如,我想得到以下字符串的长度:ä
strlen('ä'); // 2, because ä equals 2 bytes
mb_strlen('ä', 'UTF-8'); // 1
iconv_strlen('ä', 'UTF-8'); // 1
Run Code Online (Sandbox Code Playgroud)
我应该使用哪些功能?mb_*或iconv_*?为什么?考虑到编码可能不限于UTF-8.
Thx提前!
php ×3
built-in ×1
doctrine-orm ×1
function ×1
iconv ×1
multibyte ×1
mysql ×1
namespaces ×1
unicode ×1