php中文手册的两处错误

以下错误和遗漏大多来自网友的提问,然后回答时从手册中发现的几个问题。
1.抽象类翻译。错误。
在语言参考→类与对象→抽象类一节的开头,有这样的描述"抽象类中 至少要包含一个抽象方法。"(http://www.php.net/manual/zh/language.oop5.abstract.php) .很明显,这是错误的,因为可以定义空的抽象类,也可以定义包含非抽象方法的抽象类。
英文原文是“any class that contains at least one abstract method must also be abstract. ”(http://www.php.net/manual/en/language.oop5.abstract.php)。翻译过来就是“任何含有抽象方法的类必须定义为抽象类”。这跟之前的描述完全是两码事,中文手册的翻译属于典型的翻译错误。

2.日期函数date的z参数。错误。
http://cn.php.net/manual/en/function.date.php
英文“z the day of the year (starting from 0) 0 through 365
中文手册:“z  年份中的第几天   0到366”(http://cn.php.net/manual/zh/function.date.php


。。另外,还有很多函数遗漏了一些重要的注意事项或版本信息,不过很多都已在最新版手册中得到了修正。以及部分翻译晦涩的地方。以上问题大多已反馈。如果有遇到类似困惑的地方,先首先看下是不是你看的中文手册有误。

win下visual studio 2010编译CURL和libcurl

    要想在WIN下编译CURL和libcurl,真是件麻烦事。要编译curl,就得先编译openssl和zlib,因为curl依赖这两个库。分别到其官方网站下载三个软件的源代码
http://curl.haxx.se/download.html下载 curl-7.25.0
http://www.zlib.net/ 下载 zlib-1.2.7
http://www.openssl.org/source/ 下载 openSSL最新版2.1.0j,以上皆为最新版。本机环境WIN7,VS2010,把这三个软件解压到H:\TDDOWNLOAD\lib目录下。
开始干活。

1.编译ZLIB


curl依赖openssl和zlib,而openssl又依赖zlib,所以得先编译zlib
(1)由于zlib部分模块为了追求速度,使用了汇编来编写,所以在编译ZLIB之前,还需要先编译两个汇编程序,先来编译masmx86模块。
(2)从visual studio-工具-visual studio命令提示下进入命令行,VS自动设置命令行环境。进入contrib/masmx86目录下,执行bld_ml32.bat,调用汇编器编译汇编代码。在H:\TDDOWNLOAD\lib\zlib-1.2.7\contrib\masmx86下应该生成了几个obj文件.
(3)打开contrib\vstudio\vc10\zlibvc.sln文件,选择zlibstat模块,添加一个缺少的文件zlib-1.2.7\contrib\minizip\iowin32.c,解决方案配置选择release,当然也可以选择debug版本,但是编译后的体积会略大一些(附带了debug信息),编译此方案。
2012-05-13_042555.png
(4)复制H:\TDDOWNLOAD\lib\zlib-1.2.7\contrib\vstudio\vc10\x86\ZlibStatRelease\zlibstat.lib文件到H:\TDDOWNLOAD\lib\zlib\lib文件夹,同时在H:\TDDOWNLOAD\lib\zlib文件夹下新建include目录,复制H:\TDDOWNLOAD\lib\zlib-1.2.7和H:\TDDOWNLOAD\lib\zlib-1.2.7\contrib\minizip下的头文件到此目录。
     到这里,ZLIB编译完毕。

2.编译openssl

阅读剩余部分...

Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置

Tomcat 在 7.0 以前的版本都是使用commons-dbcp做为连接池的实现,但是 dbcp存在一些问题:
(1)dbcp 是单线程的,为了保证线程安全会锁整个连接池
(2)dbcp 性能不佳
(3)dbcp 太复杂,超过 60 个类,发展滞后。
因此,通常J2EE中还会使用其它的高性能连接池,如C3P0,还有阿里系的druid 等。为此,Tomcat 从 7.0 开始引入一个新的模块:Tomcat jdbc pool
 tomcat jdbc pool 近乎兼容 dbcp ,性能更高
异步方式获取连接
tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架
使用 javax.sql.PooledConnection 接口获取连接
支持高并发应用环境
超简单,核心文件只有8个,比 c3p0 还少
更好的空闲连接处理机制
支持 JMX
支持 XA Connection。
tomcat jdbc pool 可在 Tomcat 中直接使用,也可以在独立的应用中使用。

阅读剩余部分...

离职了

今天已经离职,可以去干我喜欢干的事情了。
修生养性,努力钻研,为我所好也。

JavaFX2 中CSS使用的几个问题总结

1.javaFx中引入CSS报错
使用如下代码
scene.getStylesheets().add(this.getClass().getResource("login.css").toExternalForm());
为JavaFX引入CSS,结果报
Exception in Application start method Exception in thread "main" java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source).
....
Caused by: java.lang.NullPointerException

很明显,这样的问题是由于CSS文件找不到造成的。很可能是由于你的IDE不会自动把CSS文件从工程的SRC目录拷贝到build目录造成的。可以手工拷贝一下,或者清理项目重新生成。
参考网址:http://stackoverflow.com/questions/9862113/javafx-2-0-xychart-and-css

2..javaFx中引入CSS无效果
症状描述:使用代码
scene.getStylesheets().add(this.getClass().getResource("login.css").toExternalForm());

引入CSS,没有报错,但是也没有CSS效果,而是用下面的方式却是可行的:
grid.setStyle("-fx-background-image: url(\"ThghN.png\"); -fx-background-repeat: stretch; -fx-background-size: 300 250;");
问题原因:(1)可能你是用的是较早的javaFx版本,这是其中的一个BUG,解决办法就是升级版本(相关帖子:https://forums.oracle.com/forums/thread.jspa?threadID=2229859)。
(2)还有可能的原因就是CSS写错了。注意CSS中,选择器是.root,而不是root。在使用IDE生成代码时容易忽略,这个小问题害我排查了将近两个多小时。。。郁闷了
javaFx_css.png

最后,附上手册地址:http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html

php开发中mysql的预编译如何

    长话短说。php项目里最常见的安全漏洞就是SQL注入了人,这也是php项目和其他语言开发的项目相比最容易出问题的地方。
    PHP程序员不太了解预编译是很正常也很普遍的。这个主要是由于MYSQL的预编译和变量绑定比较弱造成的,因为90%的php代码搭配的是mysql数据库,所以大部分php程序员也就不清楚这块的知识了。而oracle,MSSQL这比MYSQL要强的多,相比通常搭配这两个数据库的语言来说,JAVA和NET程序员更了解这块知识。而PDO和MYSQLI在php开发里还没普及,不少技术人员产生惰性,容易引发不少潜在的漏洞。
主要结论:
(1)MYSQL是支持预编译的。
(2)MYSQL的预编译很弱,如仅仅是session级别,对执行效率提升不明显。
(3)程序是否支持预编译,除了数据库支持外,还需要驱动支持。PDO和MYSQLI均支持。
(4)预编译干两件事,转义和软解析提速。
(5)即使是在oracle中,预编译和变量绑定也不一定就能提速,反而有可能会因为执行计划被改变造成效率低下。有些数据库预编译反而会造成效率下降。
(6)预编译和绑定变量是什么关系?其实二者是同一回事的不同阶段的叫法。
--------------------------附---------------------------------
在MYSQL里怎么用预编译:
create table ttest (ID int(4) auto_increment primary key, name varchar(20),age int(4));
insert into ttest (name,age) values ('li',10);
prepare mysqlpre from 'select * from ttest where name = ?';
set @name='li';
execute mysqlpre using @name;
查看反馈结果:
show status like '%prepare%';

mysql条件注释

    刚刚在某论坛看到有人问MYSQL的注释,按照小概率事件不会发生的道理,想必这个问题肯定还是有不少人没有关注过,或者也没仔细思考。
    常见的两种注释 -- 和 # 都很简单,需要注意的就是两个 -- 后面是有一个空格字符(可以是空格或者tab等)的。
接下来,让我们困惑的就是类似下面的注释了,通常在一些工具导出的SQL文件里会有,如
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
    和我们常见的C风格的注释不一样,有的/**/里面有个感叹号,这是什么原因呢?
    原来mysql除了支持普通的/**/注释外,也支持/!**/风格的条件注释。这种风格的注释里的SQL代码都会被MYSQL执行,但是其它SQL服务器不认识这种注释,因此这种注释也就成了mysql专用的注释了,同时具备了兼容性。因此下面这种语句也是可以执行的:
SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...
     那还有一个疑问,文章开头的那段注释里的40101是什么意思,这实际上是MYSQL的版本号,也就是形同4.01.01这样的版本号,4是大版本号,接下来的是小版本号。也就是说注释里的代码只有在当前MYSQL的版本大于等于4.01.01时才会被执行。
    其实这样的小知识点,只要是有一点点好奇心和学习精神的,我想都不会放过任何组丝马迹的,多保持好奇心就够了。详细的解释可以参见官方手册。http://dev.mysql.com/doc/refman/5.5/en/comments.html
     还有最后一个问题,@是什么意思呢,@就是session变量,只在当前会话中有效。

php里的继父类和义父类

      注:本文非技术文章。
     什么叫继父类:在php里,父类就是父类,子类就是子类,二者都属于人(这不废话么~这就是弱类型的概念),虽有继承关系,但没有血缘关系,无法在需要时进行合体(转型)。因此,PHP里的父类也叫继父类,当然了,子类就叫继子类。这是什么意思呢,也就是说,像C,JAVA里这样的转型语法 father *pf=new son; 是不存在的。这就是典型的多态特征。对于没有转型概念的php而言,也就没有了类型的界定,“同一类型”也无从谈起,子类和父类被生生的割裂了,子类就是子类,父类就是父类,是两个完全不同的类型,无法互转。当然,你硬要说两者都是同一种类型-弱类型,也不是不可。这也是你可以说PHP有多态,也可以说无多态的一个原因。
     什么叫义父类:stdClass是一个保留类,类似JAVA里的OBJECT,但是这个类并不是PHP里其他类的基类,和object又不一样,但这个类又能被继承,而且还能把其它类型的数据转换成这个类。如果把一个标量转为object类型,那么就是转成它了。我不承认我和你有任何瓜葛,但是你要是无路可走,叫我声义父,我就能收留你。因此此类又叫义父类。
   继父和义父有啥区别呢?继父抚养继子,有被继承权;而义父只是单纯的收留而已。
    (*^__^*) 嘻嘻……

    Page :
  1. 1
  2. 2
  3. 3
  4. 4
  5. ...
  6. 40