• ベストアンサー

functionに括弧を使用するとエラー

Parse error: parse error, expecting `')'' in C:\XXX.php on line XX というエラーが発生します。 クラスのfunctionの引数に他のクラスを呼び出すとエラーになります。 class XXX { function XXX_XXX( $dmy = YYY:YYY_YYY() )  //ここがエラー発生行 { ・・・・・ } } class YYY { function YYY_YYY() { return 1; } } この方法は無理でしょうか? どうにかクラスを呼び出す方法が御座いましたらご教授願います。

  • PHP
  • 回答数4
  • ありがとう数0

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

  • ベストアンサー
  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.2

http://jp2.php.net/manual/ja/functions.arguments.php#functions.arguments.default マニュアルに明記されていますが、関数の引数は定数式でなければならないとあります。 つまり例示された書式は通りません。 あと、横レスで申し訳ありませんが、、 >出来ればを増やしたくないなと思いまして。 ここ、何を増やしたくなかったんでしょう、行(処理)ですかね?

yamadachan
質問者

補足

ご回答ありがとう御座います。 マニュアルからすると無理っぽいですね^^; >ここ、何を増やしたくなかったんでしょう、行(処理)ですかね? 出来れば処理を増やしたくないです。 なぜか単語がなくなっちゃってますね。 申し訳ないですm(_ _)m

その他の回答 (3)

回答No.4

条件分岐がダメなのであれば、実質できません。 やるとしたら function XXX_XXX($dmy){ } function XXX_XXX_auto(){ return $this->XXX_XXX(YYY::YYY_YYY()); } とでもして別のメソッドを用意するしかないです。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>他に方法ありましたらご教授願います。 他に方法ありましたらもなにも・・・ 質問者さんの希望するやり方はできないことですし、 他の提示をしたら「なんとなくやりたくない」といわれてしまうと どんな形式なら満足するという例示がないかぎり 何を提示していいのかわかりません。

yamadachan
質問者

補足

ご回答ありがとうございます。 if文(分岐)を使用せずに記述が出来ればと思っております。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こんな感じでよいのでは? <? class XXX{ function XXX_XXX($dmy = NULL ){ if(func_num_args()==0) $dmy=YYY::YYY_YYY(); print $dmy; } } class YYY{ function YYY_YYY(){ return 1; } } XXX::XXX_XXX(); XXX::XXX_XXX(2); ?>

yamadachan
質問者

補足

ご回答ありがとう御座います。 その方法も考えたんですが、 出来ればを増やしたくないなと思いまして。 他に方法ありましたらご教授願います。

関連するQ&A

  • functionから抜けることができません、強制終了したいです。

    function A(xxx) { B(xxx); C(xxx); } function B(xxx) { if (xxx == "yyy") {ここでBから抜けてさらにAも抜けたい。} return(xxx); } こんな時どうすればいいのでしょうか? javascriptですとexitはありませんしquitもありません。 breakも違うようです…スクリプトの強制終了はどうすれば良いのでしょうか。

  • エラーメッセージの意味をおしえてください

    以下のエラーメッセージの意味をおしえてください。ワードプレス更新中に画面が真っ白になり、エラーメッセージが出るまでたどり着きましたが以下のメッセージの意味が分かりません。わかる方、至急教えてください。 Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/takada-group/lazycurry.net/public_html/wp-content/plugins/akismet/class.akismet.php on line 4

  • PHPのエラーについて

    このファイルを実行した際に下記のようなエラーが出力されます。 Parse error: syntax error, unexpected '$yamada' (T_VARIABLE), expecting ',' or ';' in C:\xampp\htdocs\study.localhost\sample.php on line 30 何が原因でこのようなエラーが発生しているのでしょうか? 初心者で的外れな質問かもしれませんがよろしくお願います。 <?php class Employee { public $name; private $state = '働いている'; public function getState() { return $this->state; } public function setState($state) { $this->state = $state; } public function work() { echo '書類を整理しています'; } } ?> <?php $yamada = new Employee(); $yamada->job = 'プログラマ'; $yamada->name = '山田'; $yamada->setState('休憩している'); 30行目→echo $yamada->name,'さんは', $yamada->getState();

  • PHPでクラス内のpublicでエラーになる原因

    Apache/1.3.27を使っています。 下記コードをローカルで表示すると Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\phpdev\www\ajax\sql.php on line 11 というエラーが出てしまいます。 なぜエラーになるのか原因が分かりません。 アドバイスを頂けないでしょうか。 <html> <head><title>PHP TEST</title></head> <body> <?php $tv = new Television(); $tv->$channelNo = 8; $tv->dispChannel(); class Television{ public $channelNo; function dispChannel(){ print('現在のチャンネルは'.$this->channelNo); } } ?> </body> </html>

    • ベストアンサー
    • PHP
  • エラーの意味!

    初めて見るエラーで困ってます!! どなたか教えてください! Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /***/***/***/test.php on line 331

    • ベストアンサー
    • PHP
  • constでパースエラー

    <?php class hoge { const MOGE = 'moge'; function poge() { echo 'poge'; } } ?> なコードを書くと、 Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ...\test.php on line 5 とのエラーがでます。 constの部分をコメントアウトすればエラーはでません。 環境は、WindowsのXAMPP環境で、PHPのバージョンを4に変更してテストしているところなのですが... PHP Version 4.4.8 Apache/2.2.8 PHP5の環境では、正常に動作しました。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • classでエラー

    IIS5+PHP4.4.0+MSDEで、開発しているのですが、 テスト環境では、動いていたソースを、本番環境に動かしたら、 Notice: Undefined variable: m_strDBName in C:\xxx.php on line 110 Fatal error: Call to undefined function: mssql_pconnect() in C:\xxx.php on line 119 というエラーが出てしまいました。 もちろん、テスト環境と、本番環境は、同じ環境で、 PHP.iniもコピーしました。(インストールパスも同じです) エラー部分は、 require_once("xxx.php"); で、呼び出し、 class clsXXX { var $m_strDBName; function clsXXX() { $this->$m_strDBName = "mmdb"; return; } } としています。 どうすれば、解決できるでしょうか?

    • ベストアンサー
    • PHP
  • PHPのエラー教えて!parse error, unexpected T_STRING

    すみません PHPのエラー教えてください ------------------------------内容は↓ <?php // まずはクラス名を指定 class AboutMe { // 変数のタイプを指定します ●ここ●public $name = "デイビッド田中"; public $email = "david.tanaka@davidtanaka.localdomain"; public $phone = "011-81-333-333-3333"; } // クラスを呼び出します。 $About = new AboutMe(); // 情報を表示します print($About->name); ?> ---------------------------------ココまで ●ここ●は印のために入れたもの エラーは parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ●ここ● エラー番号は●ここ●を指しています WindowXP、Apache、PHP5

    • ベストアンサー
    • PHP
  • ヒアドキュメントとクラスの基本的?な質問です

    PHPのヒアドキュメントを使ってHTMLのクラスを使ろうと思っているのですがいきなりわからなくなってしまいました。下のソースのどこがいけないのでしょうか。 エラー内容は Parse error: parse error, unexpected $end in \Html.php on line 19 です。よろしくお願いします。 index.php <?php require_once("./Html.php"); $html = new Html(); print $html->NoFrame(); ?> Html.php <?php class Html{ function Html(){ } function NoFrame(){ $html = <<<EOF <html> <head> <title> </title> </head> <body> おーい </body> </html> EOF; return $html; } } ?>

    • ベストアンサー
    • PHP
  • Parse errorについて教えてください

    私は独習PHPという参考書でプログラムの勉強をしている初心者です。 先日、PHPの「オブジェクト指向構文」を勉強していたのですが、その中の「継承」という項目にあるサンプルプログラムを動かしてみたのですがParse errorと言うメッセージが出て動きません。構文に関するエラーという事はわかったのですが括弧や;をチェックしても参考書と変わらないのでタイプミスではないと思うのですが、どなたか解決法をご教授お願いします。以下はそのときのプログラムとエラーメッセージです。 ファイル名:subclass.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>サブクラス</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF8" /> </head> <body> <?php class MyClass {  protected $data; public function __construct($data){ $this->data=$data; } public function showData(){ return '入力値は「'.$this->data.'」です。'; } } class MySubClass extends MyClass { public function showData(){ return '***入力値は「'.$this->data.'」です。***'; } } $obj=new MySubClass('PEAR'); print($obj->showData()); ?> </body> </html> エラーメッセージ: Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap2\subclass.php on line 12

    • ベストアンサー
    • PHP

専門家に質問してみよう