XoopsのXoopsmailer.phpについて

このQ&Aのポイント
  • XoopsのXoopsmailer.phpのスクリプトについて質問があります。
  • 「=&」と「->」の意味と読み方について教えてください。
  • スクリプトの中での記載に関しても疑問があります。
回答を見る
  • ベストアンサー

スクリプトの書き方その2

すみません、毎度お世話になります。 超初心者(ただ中身を整理するだけ)のスキルです。 Xoopsの Xoopsmailer.phpというスクリプトの中に、 次のような記載があります。 function setToGroups($group)内のコード: 1)$member_handler =& xoops_gethandler('member'); 2)$groups=&$member_handler->getUsersByGroup($group->getVar('groupid'),true); 1の =&の両側にはスペースがあるのですが、2のそれにはありません。 2も1と同様に、$groups =& $member_handler............ では駄目でしょうか? そもそも、「=&」と「->」は何と読み、それぞれ どういう意味があるのでしょうか? 本当にわからないので、どうか教えて下さい。お願いします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

演算子の前後のスペースはあってもなくてもかまいません 数も制限はないのでスペース10個でも問題なしです またスペースだけでなくタブや改行が入っていてもOKです 自分でかく場合には自分が見やすいように書けばいいと思います "=&"はこれで一つの演算子ではなく普通の"="(代入演算子)にリファレンスを示す"&"が並んでいるだけです。 リファレンスの説明 http://www.php.net/manual/ja/language.references.php "->"は私は矢印演算子と呼んでいます クラスのメンバーを指定するのに使います

waterclock
質問者

お礼

返事が遅くなりすみません。 どうもありがとうございます。 リファレンス、ちょっとだけわかりました。

関連するQ&A

  • Cannot redeclare/ Xoops legacy  

    こんにちは。お時間のある方、宜しければお助けください。 Xoops cube legacy 2.0.1を利用しており、追加モジュール NewBB 2.0 をインストールしました。しかし、管理しようとすると Fatal error: Cannot redeclare newbb_getunamefromid()  と出てきてしまい、その先に進めません。 function newbb_getUnameFromId( $userid, $usereal = 0 ) { $userid = intval($userid); $usereal = intval($usereal); if ($userid > 0) { $member_handler =& xoops_gethandler('member'); $user =& $member_handler->getUser($userid); if (is_object($user)) { $ts =& MyTextSanitizer::getInstance(); if ( $usereal && $user->getVar('name') ) { return $ts->htmlSpecialChars($user->getVar('name')); } else { return $ts->htmlSpecialChars($user->getVar('uname')); } } } return $GLOBALS['xoopsConfig']['anonymous']; } に二重定義(?)があるようなのですが、どこを変えるべきでしょうか?

    • 締切済み
    • PHP
  • Ajax.Updaterで読み込んだ先の要素にイベントを設定したい

    Ajaxの勉強をしているのですが、非同期通信で要素を書き換えた後の処理について困っています。 現在、prototype.jsのAjax.Updaterを利用して下記のようなソースを書き、動作の検証を行っているのですが、読み込み元のファイル(test.1html)から読み込んだ先(test2.html)の要素を取得することは出来ても、その要素に対してイベントを設定することが出来ません。 具体的に言うと、 targ2の要素をクリックすると、test2.html内のtarg3の要素を取得出来てアラートが走りますが、targ3の要素をクリックしてもイベントが実行されないという状況です。 このtarg3の要素に対してイベントを設定するにはどのようにすれば良いでしょうか? ○test1.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Ajaxtest</title> <script src="prototype.js"></script> <script> window.onload=function(){ Event.observe('targ1', 'click', handler1); Event.observe('targ2', 'click', handler2); Event.observe('targ3', 'click', handler3); } function handler1() { var myajax = new Ajax.Updater(      {success : "targetString"},      "test2.html",      {evalScripts:true}); } function handler2() { alert($('targ3').innerHTML); } function handler3() { alert($('targ3').innerHTML); } </script> </head> <body> <div id="targ1">押して非同期通信開始</div> <div id="targ2">非同期通信終了後に押す</div> <div id="targetString"></div> </body> </html> ○test2.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Ajaxtest</title> </head> <body> <div id="targ3">非同期通信で呼ばれた要素</div> </body> </html>

    • ベストアンサー
    • AJAX
  • イベントをつかってコールバックさせたいのですが

    HTAスクリプトでIEを起動し、ページが表示されるのを待つプログラムを 作成しようとしています。 JavaScriptではスリープができないのでisBusyをがfalseになるのを 待つ代わりに、IEオブジェクトのイベントからコールバックさせようと思いました。 そこで次のプログラムを書いたのですが、 イベントハンドラ登録の文法が間違っているらしく、実行時に 「オブジェクトでサポートされていないメソッドまたはプロパティです」 になってしまいます。 この行でやりたいことは、ieオブジェクトの NavigateComplete2 イベントが発生したときに、onComplete が呼ばれるようにすることです。 イベントハンドラの登録方法、または ieがページを読み終わるのを検知するよい方法がありましたら お教え下さい。よろしくお願いします。 ■sample.hta <html> <script> function perform(){   var ie = new ActiveXObject("InternetExplorer.Application");   ie.visible=true;   ie.navigateComplete2 = onComplete; // ←この行がエラー   ie.navigate("http://www.1101.com"); } function onComplete(a, b){   alert("complete"); } </script> <body> <input type=button onclick="perform();" value="open"> </body> </html>

  • セキュリティグループのメンバー一覧出力方法

    いつもお世話になります。 アクティブディレクトリ内に登録した全セキュリティグループのメンバーをcsvに出力したいのですが、 コマンドがわかりません。 まず、net group コマンドでセキュリティグループ グローバルの一覧をファイルに出力、 各グループごとの一覧を取得したいのですが、 ネットで見つけた下記コマンドのどの部分に各セキュリティグループ名を設定すればよいのでしょうか。 ※CN=SG_AccsessUser はセキュリティグループをあらわしていることはわかりました。 【とあるセキュリティグループのメンバーを出力するコマンドのサンプル】 C:\>ldifde -f c:\test.csv -d "CN=SG_AccsessUser,OU=FileAccess,OU=Groups ,OU=Group,OU=NK,DC=aa,DC=com" -u スクリプトはwscriptなどで作成する予定です。 どうぞ宜しくお願いします。

  • 2つのプルダウンの結果を別フレームへ

    はじめまして。一方のフレームには2つのプルダウンを作りボタンクリックでその結果(リンク)をもう一方のフレームで表示させたいのですが、うまくいかず困ってます。どなたかよろしくお願いします。 それぞれフレームの名前は、 プルダウンのフレーム・・・・・top それを表示させたいフレーム・・und  と付けました。 プルダウンの方のソースは以下のようになってます。 <!--webbot bot="HTMLMarkup" startspan --> <form name="doublecombo" > <p><select name="example" size="1" onChange="redirect(this.options.selectedIndex)"> <option>月曜日</option> <option>火曜日</option> </select><br><br> <select name="stage2" size="1"> <option>時限選択</option> </select><br><br> <input type="button" name="test" value="時間割" onClick="go()" > </p> <script> <!-- var groups=document.doublecombo.example.options.length var group=new Array(groups) for (i=0; i<groups; i++) group[i]=new Array() group[0][0]=new Option("1時限","/○○○.html") group[0][1]=new Option("2時限","/○○○.html") group[0][2]=new Option("3時限","/○○○html") group[1][0]=new Option("1時限","/○○○.html") group[1][1]=new Option("2時限","/○○○.html") group[1][2]=new Option("3時限","/○○○.html") var temp=document.doublecombo.stage2 function redirect(x){ for (m=temp.options.length-1;m>0;m--) temp.options[m]=null for (i=0;i<group[x].length;i++){ temp.options[i]=new Option(group[x][i].text,group[x][i].value) } temp.options[0].selected=true } function go(){ location=temp.options[temp.selectedIndex].value } //--> </script>

  • iframe内のスクリプトを親から3つ実行する記述

    iframe内のスクリプトを親から3つ実行したいのです. 親フレームのイベントハンドラ input とonclick="()" を利用して1回のクリックで 1)iframe内のHTMLを変更し (iframe00.htmlからiframe01.htmlへ) 2)iframe内のflvファイルを開始し(iframe01.htm内のflaverを実行しa.flvを開始したい) 3)iframe内の画像を変更したい(iframe01.htmlでは同一table内で a.gifを,iframe02ではb.gifを表示) 現在までで出来ているのは以下のところまでで,上記1)と3)はできるのですが, 2)は下記のごとく,onmouseoverとonclickを使用しないと,flvが開始されません. changeA1のdocument・・・を changeA2の中に入れても,iframeのHTMLと画像は 変わりますが,動画が開始されません. 私の実力では,希望している動作が可能か否かも解りません. 可能か否か,可能であればどのように記述すればよいかご教示いただければ幸いです. 1.親htmlのスクリプト,iframeの記述,およびイベントハンドラー <script type="text/javascript"> <!-- function changeA1(){document.win01.location.href="iframe01.html" ;} function changeA2(text01,file01,image01){ var text02=text01; var file02=file01; var image02=image01; document.getElementById('win01').contentWindow.play01(text02,file02,image02); }  function changeB1(){document.win01.location.href="iframe02.html" ;} function changeB2(text01,file01,image01){ var text02=text01; var file02=file01; var image02=image01; document.getElementById('win01').contentWindow.play01(text02,file02,image02); } //--> <iframe src="iframe00.html id="win01"></iframe> <input type="button" value="I" onmouseover="changeA1()" onclick="changeA2('あ', a.flv','a.gif') /> <input type="button" value="II" onmouseover="changeB1()" onclick="changeB2('い', b.flv','b.gif') /> 2. iframe01.html のスクリプト <script type="text/javascript"> <!-- function play01(text00,file00,image00){ var flaver = '../../flaver3/flaver.swf'; var html01 = ''; var html02 = ''; html01 += '<font style="font-weight:bold; font-size:15px">' + text00 + '</font>'; html01 += '<object data="' + flaver + '" type="application/x-shockwave-flash" width="400" height="300">'; html01 += '<param name="movie" value="' + flaver + '" />'; html01 += '<param name="FlashVars" value="file=' + file00 + '" />'; html01 += '<param name="wmode" value="transparent" />'; html01 += '<param name="allowFullScreen" value="true" />'; html01 += '</object>'; document.getElementById('flv01').innerHTML = html01; html02 += '<img src="'+ image00 + '" border="0" width="360" height="270" />'; } //-->

  • コンボボックスのリンク先にフレームを指定したい

    コンボ1に連動してコンボ2の内容を変更し コンボ2からリンクしているファイルを別フレームに表示したいです。 また、リンク先にアンカーを指定したいです。 宜しくお願いいたします。 以下の設定で試みましたが、NGでした。 ------------------------------------------------ ◆index.html <html> ~省略~ <frameset rows="120,*" border="0" framespacing="0" frameborder="no"> <frame src="header.html" name="head" noresize scrolling="no"> <frame src="data1.htm" name="main" noresize> ~省略~ </html> ------------------------------------------------ ◆header.html <HTML> <HEAD> <META http-equiv="content-type" content="text/html;charset=x-sjis"> <TITLE>連動コンボ</TITLE> </HEAD> <BODY bgcolor="#ffffff"> <P> <FONT size="2">連動コンボ</FONT></FONT><BR> <FORM METHOD=POST name=doublecombo> <P> <!-- --><SELECT name="example" ID="example" onchange="redirect(this.options.selectedIndex)" size="1"> <OPTION SELECTED>選択 <!--group1--> <OPTION>データ1 <!--group2--> <OPTION>データ2 </SELECT><SELECT name="stage2" ID="stage2"> <OPTION SELECTED VALUE="">- <INPUT type=BUTTON name="test" VALUE="適用" ID="test" onclick="go()"><BR> <SCRIPT> <!-- var groups=document.doublecombo.example.options.length var group=new Array(groups) for (i=0; i<groups; i++) group[i]=new Array() group[1][0]=new Option("data1-1","1-1.html")←●1-1.html#page1 のようにアンカーを指定したい group[1][1]=new Option("data1-2","1-2.html") group[1][2]=new Option("data1-3","1-3.html") group[2][0]=new Option("data2-1","2-1.html") group[2][1]=new Option("data2-2","2-2.html") group[2][2]=new Option("data2-3","2-3.html") var temp=document.doublecombo.stage2 function redirect(x){ for (m=temp.options.length-1;m>0;m--) temp.options[m]=null for (i=0;i<group[x].length;i++){ temp.options[i]=new Option(group[x][i].text,group[x][i].value) } temp.options[0].selected=true } function go(){ location=temp.options[temp.selectedIndex].value } //--></SCRIPT> </FORM></BODY> </HTML> ------------------------------------------------ ◆備考 header.htmlのfunction go()~を function go(){window.main.location= ~ にしてもNGでした。

    • ベストアンサー
    • HTML
  • wordpressにjqueryを使う

    wordpress初心者の者です。 現在wordpressで海外のテンプレートを使っています。 その中で、wookmarkというjqueryを固定ページに使いたいのですが、 jqueryの元ファイルのhtmlのコードの中に、下記のようなリンク部分があるのですが、 1行目の「jquery.min.js」は読み込む必要ありますでしょうか? <!-- include jQuery --> <script src="../libs/jquery.min.js"></script> <!-- Include the imagesLoaded plug-in --> <script src="../libs/jquery.imagesloaded.js"></script> <!-- Include the plug-in --> <script src="../jquery.wookmark.js"></script> またその下に下記のような記述があるのですが、これはヘッダーに 貼付ければよろしいのでしょう?? ご存知の方教えてください。 <!-- Once the page is loaded, initalize the plug-in. --> <script type="text/javascript"> (function ($){ $('#tiles').imagesLoaded(function() { // Prepare layout options. var options = { autoResize: true, // This will auto-update the layout when the browser window is resized. container: $('#main'), // Optional, used for some extra CSS styling offset: 2, // Optional, the distance between grid items itemWidth: 210, // Optional, the width of a grid item fillEmptySpace: true // Optional, fill the bottom of each column with widths of flexible height }; // Get a reference to your grid items. var handler = $('#tiles li'), filters = $('#filters li'); // Call the layout function. handler.wookmark(options); /** * When a filter is clicked, toggle it's active state and refresh. */ var onClickFilter = function(event) { var item = $(event.currentTarget), activeFilters = []; if (!item.hasClass('active')) { filters.removeClass('active'); } item.toggleClass('active'); // Filter by the currently selected filter if (item.hasClass('active')) { activeFilters.push(item.data('filter')); } handler.wookmarkInstance.filter(activeFilters); } // Capture filter click events. filters.click(onClickFilter); }); })(jQuery); </script>

  • ファイルアップロードのエラーに関して

    こんばんは。お世話になっております。 これまで、以下のようなスクリプト(一部ですが)にて、ファイルのアップロードを行っておりますが、ローカルでのテスト環境で、突然エラー表示が出るようになってしまいました。(phpバージョン 5.2.2) $folder = $_SESSION['id']; function deleteDir($rootPath){ if(is_dir($rootPath)){ if($strDir = opendir($rootPath)){ while($strFile = readdir($strDir)){ if($strFile != '.' && $strFile != '..'){ unlink($rootPath.'/'.$strFile); } } closedir($strDir); rmdir($rootPath);//ここで「rmdir(/home/public_html/html/member_picture/4/) [function.rmdir]: Permission denied in 」というエラー } } } deleteDir("/home/public_html/html/member_picture/$folder/"); mkdir ("/home/public_html/html/member_picture/$folder/",0707);//ここで、「mkdir() [function.mkdir]: File exists in 」というエラー これまで何ら問題なく作動していただけに、突然のエラー表示に(スキル不足故に)成す術もなく、スプリプトのおかしな点などを含め、アドバイスなど頂戴出来ればと投函しました。 お忙しい中恐縮ですが、宜しくお願い申し上げます。 ※提示したスクリプトが不適切(提示不足)なものであったらお許し下さい。

    • ベストアンサー
    • PHP
  • GAE 多対多モデルのデータ削除について

    Google app engin の datastoreで多対多を下記ページなどを参考につくりました。 http://code.google.com/intl/ja/appengine/articles/modeling.html グループとユーザの関係を多対多で構築しています。models.pyの内容は下記になります。 ※私は、GAEをPythonとDjango(パッチ)でつくっています。 class Users(db.Model): name= db.StringProperty() group=db.ListProperty(db.Key) class Groups(db.Model): name=db.StringProperty() owner=db.IntergerProperty() グループのオーナーがグループを削除する為のスクリプトを書こうと思っているのですが、グループを削除する際に、参加しているユーザーのgroupから、削除するグループのkeyを削除する必要があります。これについて最も効率的な方法を教えていただけますでしょうか。 GAEはデータの変更・削除に結構時間がかかります。仮に数万人所属しているグループがあったとし、このグループをオーナーが削除する場合、グループに所属しているユーザーのgroupに全てアクセスし、該当グループのkeyを削除する操作は非効率(30秒を超える可能性が十分あるの)ではないかと思っています。 宜しくお願いします。

専門家に質問してみよう