global关键字的效用是什么?
是否有任何理由更喜欢一种方法?
方法1:
function exempleConcat($str1, $str2)
{
return $str1.$str2;
}
Run Code Online (Sandbox Code Playgroud)
方法2:
function exempleConcat()
{
global $str1, $str2;
return $str1.$str2;
}
Run Code Online (Sandbox Code Playgroud)
什么时候使用有意义global?
对我来说,它似乎很危险 ......但它可能只是缺乏知识.我感兴趣的是记录(例如代码示例,文档链接......)技术原因.
提前致谢!
这是关于这个主题的一个很好的一般性问题,我(@Gordon)正在提供奖励以获得更多答案.无论您的答案是否与我的答案一致或给出不同的观点都无关紧要.由于该global主题时不时出现,我们可以使用一个很好的"规范"答案来链接.
我是一个系统管理员和网站管理员,而不是开发人员,但有时我开发,包括C#主要使用Winform(以及可选的GTK +).
几个星期前我开始了一个WPF项目,看起来真的很强大,但一开始我觉得自己像一只母鸡找到了一把刀!有这么多差异!
stackoverflow充斥着类似这样的话题,我仔细阅读了一些类似的话:
但是,当有人从Winform开始使用WPF时,他必须注意哪些不同之处?
[编辑]
我已经构建了一个重要的MySQL数据库,包含很多视图,触发器,函数和过程.
很难测试,也不会忘记任何事情,因此,我已经为我的数据库的所有功能编写了Cucumber场景(插入,选择等,请求功能,程序等,以及视图)
当我们测试所有这些的行为时,这对我们有很大的帮助,甚至在编写视图和其他代码之前,确定我们真正想做的事情是非常有帮助的.
我的问题是:在编写Cucumber功能之后,我们都在MySQL Shell中手动测试.
我是BDD/TDD和敏捷方法的新手,但我已经做了一些搜索,知道如何进行一些自动化,但对我的情况没有发现任何有趣的东西.
是否有人可以提供一些有趣的方法来为此创建自动化?
我不知道Ruby,但举例来说,是否可以直接使用RSPec与MySQL(有一些例子)?
或者用其他语言或任何您能想到的解决方案!
提前致谢!
[编辑]
如果在RSpec和MySQL中找到一些有趣的东西:
我的问题是:我对Ruby,RSPec等没有任何知识.
我正在使用优秀的"Pick Axe"书和PragProg的RSPec书来完成它
但鉴于以下代码,我将非常感谢RSpec步骤的一个小例子:
MySQL程序
DELIMITER $$
CREATE PROCEDURE `prc_liste_motif` (
IN texte TEXT,
IN motif VARCHAR(255),
OUT nb_motif INT(9),
OUT positions TEXT)
BEGIN
DECLARE ER_SYNTAXE CONDITION FOR SQLSTATE '45000';
DECLARE sousChaine TEXT;
DECLARE positionActuelle INT(9) DEFAULT 1;
DECLARE i INT(9) DEFAULT 1;
IF
LENGTH(motif) > LENGTH(texte)
THEN
SIGNAL ER_SYNTAXE
SET MESSAGE_TEXT =
'Bad Request: Le motif est plus long que le texte.',
MYSQL_ERRNO = 400; …Run Code Online (Sandbox Code Playgroud) 我有一个很大的问题,PHP DOMDocument :: validate()似乎系统地询问了DTD.
当我想验证例如这里解释的XHTML文档时,这是一个大问题.
由于w3.org似乎拒绝来自PHP服务器的所有请求,因此使用此方法验证我的文档是不可能的......
那有什么解决方案吗?
谢谢你提前
[编辑]以下是一些准确性:
/var/www/test.php:
<?php
$implementation = new DOMImplementation();
$dtd = $implementation->createDocumentType
(
'html', // qualifiedName
'-//W3C//DTD XHTML 1.0 Transitional//EN', // publicId
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-'
.'transitional.dtd' // systemId
);
$document = $implementation->createDocument('', '', $dtd);
$document->validate();
Run Code Online (Sandbox Code Playgroud)
[ http://] 127.0.0.1/test.php:
Warning: DOMDocument::validate(http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
in /var/www/test.php on line 14
Warning: DOMDocument::validate(): I/O warning : failed to load external entity "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" in /var/www/test.php on line 14
Warning: DOMDocument::validate(): …Run Code Online (Sandbox Code Playgroud) 例如,我创建了DOMDocument这样的:
<?php
$implementation = new DOMImplementation();
$dtd =
$implementation->createDocumentType
(
'html', // qualifiedName
'-//W3C//DTD XHTML 1.0 Transitional//EN', // publicId
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-'
.'transitional.dtd' // systemId
);
$document = $implementation->createDocument('', '', $dtd);
$elementHtml = $document->createElement('html');
$elementHead = $document->createElement('head');
$elementBody = $document->createElement('body');
$elementTitle = $document->createElement('title');
$textTitre = $document->createTextNode('My bweb page');
$attrLang = $document->createAttribute('lang');
$attrLang->value = 'en';
$document->appendChild($elementHtml);
$elementHtml->appendChild($elementHead);
$elementHtml->appendChild($attrLang);
$elementHead->appendChild($elementTitle);
$elementTitle->appendChild($textTitre);
$elementHtml->appendChild($elementBody);
Run Code Online (Sandbox Code Playgroud)
那么,现在,如果我有一些像这样的xhtml字符串:
<?php
$xhtml = '<h1>Hello</h1><p>World</p>';
Run Code Online (Sandbox Code Playgroud)
如何在<body>我的节点中导入它DOMDocument?
就目前而言,我发现的唯一解决方案是这样的:
<?php
$simpleXmlElement = new SimpleXMLElement($xhtml);
$domElement = dom_import_simplexml($simpleXmlElement);
$domElement …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个使用Matlab进行处理的简单C#GUI.我正在尝试使用Matlab应用程序COM对象进行通信,但在分配期间出现以下错误:
cSharpCallsMATLAB.exe中发生未处理的"System.Runtime.InteropServices.COMException"类型异常
附加信息:由于以下错误,检索具有CLSID {491B6189-7E9D-43F4-A7DE-C062DF7B326E}的组件的COM类工厂失败:80080005.
之前我创建了必要的对象:
private MLApp.MLAppClass ml;
并在表单构造函数中指定它:
ml = new MLApp.MLAppClass();
并且该程序挂起该行并在大约5秒后返回错误.
我环顾四周但似乎无法解决这个问题.有没有人对如何让C#成功连接到Matlab有任何建议?
谢谢!
我是Node.js世界的新手
根据这个主题:什么是Node.js的Connect,Express和"中间件"?
我了解到Connect是Express的一部分
我在代码中挖了一点,我发现了两个非常有趣的文件:
./myProject/node_modules/express/lib/utils.js
Run Code Online (Sandbox Code Playgroud)
更好的:
./myProject/node_modules/express/node_modules/connect/lib/utils.js
Run Code Online (Sandbox Code Playgroud)
这两个文件充满了有用的功能,我想知道如何正确调用它们.
到目前为止,./myProject/app.js这就是我所做的:
var express = require('express')
, resource = require('express-resource')
, mongoose = require('mongoose')
, expresstUtils =
require('./node_modules/express/lib/utils.js');
, connectUtils =
require('./node_modules/express/node_modules/connect/lib/utils.js');
Run Code Online (Sandbox Code Playgroud)
但我发现它有点笨拙,那我的其他文件怎么样?
例如,这是我的一条路线:
myResources = app.resource(
'myresources',
require('./routes/myresources.js'));
Run Code Online (Sandbox Code Playgroud)
这是以下内容myresources.js:
exports.index = function(req, res)
{
res.render('./myresources.jade', { title: 'My Resources' });
};
exports.show = function(req, res)
{
fonction resourceIsWellFormatted(param)
{
// Here is some code to determine whether the resource requested
// match with …Run Code Online (Sandbox Code Playgroud) 我有一组像这样的字符串(每个"空格"是一个表格):
29 301 3 31 0 TREZILIDE Trézilidé
2A 001 1 73 1 (LE) AFA (Le) Afa
Run Code Online (Sandbox Code Playgroud)
我想要的是将其转化为:
29301 Trézilidé
2A001 (Le) Afa
Run Code Online (Sandbox Code Playgroud)
我更大的问题是:
^(..)\t[0-9]但没有选择^(..)也没有[0-9])我在带有Notepad ++的搜索和替换工具箱的文本文件中这样做
在此先感谢您的帮助!
我想删除重复的字母("tteeeessst stttringgg"=>"测试字符串").
有没有一个简短的方法,PHP可以做到这一点?